在MySQL中,我使用PHP的json_encode将数据存储在“ jsonValues”字段中:
{"product_category":[[{"category":["28"]},{"product":["16","22","64"]}]]}
通过PHP,我想通过编写以下查询来获取数据:
SELECT * FROM `dbTable`
WHERE JSON_CONTAINS(jsonValues, '"category":["28"]');
但是,它显示错误:
3141-函数json_contains的参数2中的JSON文本无效:“文档根目录不得跟随其他值。”在位置10。
答案 0 :(得分:1)
您是否尝试过像mysql doc一样在搜索词周围添加大括号?
SELECT * FROM `dbTable` WHERE JSON_CONTAINS(jsonValues, '{"category":["28"]}');
答案 1 :(得分:1)
如果以上方法均不适合您,请尝试以下代码,该方法应适用。
SELECT * FROM
dbTable
WHERE JSON_CONTAINS(jsonValues, '{"product_category": [[{"category": ["28"]}]]}');
答案 2 :(得分:0)
在编写以下代码后返回该行:
SELECT * FROM `dbTable` WHERE JSON_CONTAINS(jsonValues, '{"category":["28"]}', '$.product_category');