mysql表JSON字段,我想查询该字段里products数组里的对象的costCenterId等于一个值,怎么写path呢?

clipboard.png
目前只能这么写,但是我不知道products数组里有多少行,所以这么写是错误的。该怎么写path呢?
表结构:

clipboard.png

content:

clipboard.png

阅读 3.5k
3 个回答

俩中方案
1、如果你有管理员权限,建议你升级到mysql5.7,这是查询json内数组的最佳方法
2、使用mysql函数,like的话(命中率低), 使用正则 REGEXP,以你截图sql的最后一句话为例

AND content REGEXP '{costCenterId:".*"}' // 栗子而已,方便理解

经过研究,我发现了一种解决办法,办法如下:

clipboard.png

优化了sql,跟群里的向哥一起搞出来的。

题主您好,我在用这个语句的时候遇到一个问题总是提示我

clipboard.png
我的字段里面是有非法内容,还是说用这个有限定?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题