mysql5.7支持的json字段查询html
参考:http://www.javashuo.com/article/p-cructvhu-cw.htmlmysql
参考:http://www.javashuo.com/article/p-ztjtkugx-na.htmlsql
使用示例:json
存储结构以下:数组
SELECT * FROM worksheet_data_table_data w WHERE w.val -> '$.input_0' LIKE '%0%'
查询结果:spa
SELECT w.val, JSON_TYPE( w.val ) FROM worksheet_data_table_data w
查询结果:code
SELECT w.val, JSON_TYPE( w.val ) FROM worksheet_data_table_data w where JSON_TYPE(w.val) = 'ARRAY'
查询结果:htm
SELECT * FROM worksheet_data_table_data w WHERE w.val -> '$[*].*' LIKE '%峰%'
解释:对象
w.val -> '$[*].*' LIKE '%峰%' 1.w.val字段是JSON数组[无所谓JSONObject仍是JSONArray] [反正若是按照对象查,那数组是匹配不到的] [反之,若是按照数组查,对象也是匹配不到的] 2.'$[*].*' 表明查询JSONArray 数组格式的JSON字符串中, 第一个* 表明任意下标 第二个* 表明任意属性 3.LIKE '%峰%' 匹配条件和正常sql 查询条件同样 写
查询结果以下:blog
等于查询不一样于like的查询,须要在外面包裹一层JSON_CONTAINS()
好比数据集以下:
想要 查询 出 name字段 既等于"亚瑟" 又等于"jj"的json字段
SELECT id, `dept-user_0` FROM worksheet_data_30 d WHERE JSON_CONTAINS( d.`dept-user_0`->'$[*].name' , '"jj"', '$') AND JSON_CONTAINS( d.`dept-user_0`->'$[*].name' , '"亚瑟"', '$')
查询结果以下: