MySQL根據JSON字段的內容檢索查詢數據
- 使用
字段->'$.json屬性'
進行查詢條件 - 使用 json_extract 函數查詢,
json_extract(字段, "$.json屬性")
- 根據json數組查詢,用
JSON_CONTAINS(字段, JSON_OBJECT('json屬性', "內容"))
MySQL5.7以上支持JSON的操作,以及增加了JSON存儲類型
一般數據庫存儲JSON類型的數據會用JSON類型或者TEXT類型
注意:用JSON類型的話
1)JSON列存儲的必須是JSON格式數據,否則會報錯。
2)JSON數據類型是沒有默認值的。
示例
1、首先我們看到數據表中,Form_Value_一列是josn格式存在的,又想通過其中的一組或者幾組鍵值對來進行查詢。
2、通過以下語句就可以通過key,value來進行查詢了,如果多個條件,正常加 and 就可以了。
SELECT * FROM core_process where Form_Value_ -> '$.attendancer' = '馬立新'
3、如果是Mybatis框架,要把 > 符號轉義,像這樣用 <![CDATA[ ]]>
<![CDATA[ Form_Value_ -> '$.endDate' < #{endDate,jdbcType=VARCHAR} ]]>