使用基本SQL可能很简单,或者可能需要REGEXP,但我遇到了麻烦。
我的数据存储在JSON字符串中,如以下两个示例所示(每个字段1个字段):
[{“ id”:“ 2”,“值”:[“ 1”,“ 3”]},{“ id”:“ 3”,“值”:[“ 1”,“ 2”]}]
和:
[{“ id”:“ 3”,“ value”:[“ 2”]},{“ id”:“ 3”,“ value”:[“ 1”,“ 2”,“ 5”]}]
我想在可能包含许多数字的最后一个括号之间搜索值["1","2","5"] or just a single on ["2"]。开头的数字对应于2个类别- 单身"id":"2"和"id":"3"。
["1","2","5"] or just a single on ["2"]
"id":"2"
"id":"3"
使用%"2"%简单的LIKE当然可以匹配所有内容。我可以按"id":"$var"进行查询以返回每个类别,然后在获得结果后使用PHP对其进行过滤,但是数据可能会很大,并且我相信对于SQL专家而言这很容易。
%"2"%
"id":"$var"
我没有选择更改字段格式的选项,它必须保留为JSON。
任何帮助表示赞赏!谢谢。
我想我是通过使用以下方法解决的:AND extra_fields REGEXP '(.*"id":"2".*)("\[.*"1".*\]")'。正则表达式比MySQL:P更多
AND extra_fields REGEXP '(.*"id":"2".*)("\[.*"1".*\]")'
comment :(我找不到评论按钮) 当您了解“ extra_fields”是表中列的名称时,此语法会变得更清晰