如何在 SphinxQL 中过滤 JSON?
How to filter JSON in 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;
但是没用。
其实想想...
SELECT id, name FROM index WHERE tags = 70;
应该可以。 JSON 个数组,最终工作 'like' 个 MVA。
否则,您需要 ANY()
(而不是 ALL()
),因为 JSON 数组中只有 一个 的值是70 个,不是全部(例如 46 个不匹配!)
SELECT id, name, ANY(var=70 FOR var IN tags) as c FROM index WHERE c=1;
(最后是数值,不应该被引用!)
我有一个带有简单数字数组的 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;
但是没用。
其实想想...
SELECT id, name FROM index WHERE tags = 70;
应该可以。 JSON 个数组,最终工作 'like' 个 MVA。
否则,您需要 ANY()
(而不是 ALL()
),因为 JSON 数组中只有 一个 的值是70 个,不是全部(例如 46 个不匹配!)
SELECT id, name, ANY(var=70 FOR var IN tags) as c FROM index WHERE c=1;
(最后是数值,不应该被引用!)