我有一个带有简单数字数组的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;
但这不起作用。
答案 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;
(最后是一个数字值,不应该加引号!)