MySQL查询以使用JSON字符串搜索字段

sta*_*bie 6 regex mysql sql

这对于基本SQL来说可能很简单,或者它可能需要一个REGEXP,但我已经碰壁了.

我的数据存储在JSON字符串中,就像这两个例子一样(每个都在1个字段中):

[{"id":"2","value":["1","3"]},{"id":"3","value":["1","2"]}]

和:

[{"id":"3","value":["2"]},{"id":"3","value":["1","2","5"]}]

我想在最后一个括号中搜索可能包含许多数字的值["1","2","5"] or just a single on ["2"].起始数字对应于两个类别 - 单个"id":"2""id":"3".

使用%"2"%简单的LIKE当然可以匹配所有内容.我可以通过查询"id":"$var"返回每个类别,然后使用PHP通过筛选之后,我们有了结果,但数据可能非常大,我敢肯定,这很容易让一个SQL大师.

我没有选择更改字段的格式,它必须保持为JSON.

任何帮助赞赏!谢谢.

sta*_*bie 14

我想我用这个来解决它:AND extra_fields REGEXP '(.*"id":"2".*)("\[.*"1".*\]")'.与正则表达式相比,它更多地与MySQL相关:P

评论:(我找不到评论按钮)
当您了解到"extra_fields"是表格中列的名称时,此语法会变得更清晰