最近写项目,用到了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'))