mysql json数组匹配数组

最近写项目,用到了mysql,5.7.13后的json格式保存数据。刚刚涉及到查询条件在json数组里。

数据格式如下:

因为是数组,不管是用

select * from tableName   WHERE column->'$.name' = '周年庆'

select * from tableName   WHERE column->>'$.name' = '周年庆'

都无法查询出数据.

那匹配数据的sql如何写呢?

单条件匹配和多条件匹配又是怎么样?

要匹配json 数组的数据值 得用 JSON_CONTAINS 函数

select * from tableName t  
where JSON_CONTAINS(column,JSON_OBJECT('name','周年庆'))

问题解决,嘴角上扬

问题二,如果是一个对象里面的多条件匹配呢?

例如我要匹配 name = 周年庆,addtime = 2017-10-12 该怎么写?

select * from tableName t  
where JSON_CONTAINS(column,JSON_OBJECT('key','value','key','value'))

猜你喜欢

转载自blog.csdn.net/q1035331653/article/details/118392860