代码之家  ›  专栏  ›  技术社区  ›  Niladri Banerjee - Uttarpara

JSON_包含无法从MySQL找到的

  •  1
  • Niladri Banerjee - Uttarpara  · 技术社区  · 6 年前

    在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_的参数2中的JSON文本无效,包含:“文档根目录不能跟在其他值后面。”位置10。

    3 回复  |  直到 5 年前
        1
  •  3
  •   Zim84    6 年前

    你有没有试过像mysql文档那样,在搜索词周围加上花括号?

    SELECT * FROM `dbTable` WHERE JSON_CONTAINS(jsonValues, '{"category":["28"]}');
    
        2
  •  1
  •   Hidayat Ullah    6 年前

    如果上面的方法对您都不起作用,那么请尝试下面的代码。

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

        3
  •  0
  •   Niladri Banerjee - Uttarpara    6 年前

    它在写入以下代码后返回行:

    SELECT * FROM `dbTable` WHERE JSON_CONTAINS(jsonValues, '{"category":["28"]}', '$.product_category');