我在查找带有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 。
答案 0 :(得分:1)
您可以尝试使用LIKE
检查该字段是否包含结果;
SELECT * FROM jsondata WHERE tags LIKE '%"1"%'
但是,as outlined in this other answer在以这种方式读取JSON时可能必须考虑转义字符和编码。