无法从MySQL找到JSON_CONTAINS

时间:2018-08-17 06:02:49

标签: php mysql json

在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。

3 个答案:

答案 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');