mysql 5.1.73版本不支持JSON_CONTAINS

时间:2018-06-27 09:09:33

标签: php mysql json

我在查找带有where子句的记录时遇到了一些问题,该子句的参数为JSON格式。例如,JSON列的值类似于["1","2","3"]。当我运行where JSON_CONTAINS(tags, '["1"]')时会引发错误。

我想问的是如何获取每个JSON列中具有值 1 的所有记录?如果无法使用低版本的mysql执行此操作,也许我可以使用PHP。请任何人知道这样做可以帮助我。谢谢你

这是表记录的示例:

    id | name    | tags
    ---+---------+------------
    1  | Jason   | ["1","2"]
    2  | Michael | ["4"]
    3  | Sarah   | ["1","3"]
    4  | Lucy    | ["2"]

我想在标签列中显示值 1 Jason Sarah

1 个答案:

答案 0 :(得分:1)

您可以尝试使用LIKE检查该字段是否包含结果;

SELECT * FROM jsondata WHERE tags LIKE '%"1"%'

但是,as outlined in this other answer在以这种方式读取JSON时可能必须考虑转义字符和编码。