如何在SphinxQL中过滤JSON?

时间:2019-07-16 09:54:00

标签: sphinx sphinxql

我有一个带有简单数字数组的JSON字段

[46,70,34]

如何过滤查询,仅选择那些在JSON字段中表示“ 70”的行?类似于MySQL中的JSON_CONTAINS。

我已经尝试过

SELECT id, name, IN(tags, '70') AS c FROM index WHERE c = 1;

SELECT id, name, ALL(var='70' FOR var IN tags) as c FROM index WHERE c=1;

但这不起作用。

1 个答案:

答案 0 :(得分:1)

认真思考...

SELECT id, name FROM index WHERE tags = 70;

应该工作。 JSON数组最终像MVA一样工作。

否则,您将需要ANY()(而不是ALL()),因为JSON数组中只有一个值为70,而不是全部(46例如不匹配!)

SELECT id, name, ANY(var=70 FOR var IN tags) as c FROM index WHERE c=1;

(最后是一个数字值,不应该加引号!)