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' , '"亞瑟"', '$')
查詢結果以下: