dongqiang8058
2018-08-17 06:02
采纳率: 100%
浏览 2.8k

求助:无法从MySQL找到JSON_CONTAINS!

在MySQL中,我使用PHP的json_encode将数据存储在“jsonValue”字段中:

{"product_category":[[{"category":["28"]},{"product":["16","22","64"]}]]}

通过PHP,我希望通过编写以下查询来获取数据:

SELECT * FROM `dbTable` 
WHERE JSON_CONTAINS(jsonValues, '"category":["28"]');

但是,它还是报错:

3141 - Invalid JSON text in argument 2 to function json_contains: "The document root must not follow by other values." at position 10.

图片转代码服务由CSDN问答提供 功能建议

在MySQL中我使用PHP的json_encode将数据存储在“jsonValues”字段中: \ ñ

 <代码> { “PRODUCT_CATEGORY”:[[{ “类别”:[ “28”]},{ “产品”:[ “16”, “22”, “64”]}]]} 
    
 
 

通过PHP,我想通过编写以下查询来获取数据:

  SELECT * FROM`dbTable`  
WHERE JSON_CONTAINS(jsonValues,'“category”:[“28”]'); 
   
 
 

但是,它显示错误

3141 - 参数2中的函数json_contains中的JSON文本无效:“文档根目录不得跟随其他值。” 在第10位。

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • drrkgbm6851 2018-08-17 06:38
    已采纳

    It returns the row after writing the below codes:

    SELECT * FROM `dbTable` WHERE JSON_CONTAINS(jsonValues, '{"category":["28"]}', '$.product_category');
    
    打赏 评论
  • douji0588 2018-08-17 06:18

    Have you tried adding the curly brackets around your search term, as the mysql doc does?

    SELECT * FROM `dbTable` WHERE JSON_CONTAINS(jsonValues, '{"category":["28"]}');
    
    打赏 评论
  • duanduanxi9441 2018-08-17 06:48

    If None of the above method works for you then try below code it should work.

    SELECT * FROMdbTable WHERE JSON_CONTAINS(jsonValues, '{"product_category": [[{"category": ["28"]}]]}');

    打赏 评论

相关推荐 更多相似问题