MySQL JSON 函數及判斷空


1. JSON_ARRAY_APPEND 

給json列content 里的數組字段添加兩個值A,B並刪除值C :

 

update TAB set content = JSON_ARRAY_APPEND(content,'$.types','A','$.types','B'),
content =JSON_SET(content,'$.types',JSON_REMOVE(content->'$.types',JSON_UNQUOTE(JSON_SEARCH(content->'$.types', 'ONE', 'C'))))
WHERE content->'$.types' like '%"C"%';

 

SELECT JSON_REMOVE(content->'$.types',JSON_UNQUOTE(JSON_SEARCH(content->'$.types', 'ONE', 'C')))
from TAB WHERE content->'$.types' like '%"C"%';

 

2. JSON字段值提取: “->”  提取的值如果是字符串,會額外加上引號;“->>” 提取的值 ,會把原值取出,不含引號

 

SELECT content->'$.email' from USER WHERE login = 'XXX';

SELECT content->>'$.email' from USER WHERE login = 'XXX';

 

3. JSON 中的null判斷 :如果json不存在某個字段(如下: mail) ,用is null or isnull() 結果 是1 ; 如果json中存在某個字段(如下: email),但是值為null ,用 isnull 結果是0 , 用JSON_TYPE 可以判斷值類型是不是  'NULL' 。

  

SELECT content->'$.mail',content->'$.mail' is null from USER WHERE login = 'XXX';  --結果為 1 , 
SELECT content->'$.email',JSON_TYPE(content->'$.email') = 'NULL'  from USER  WHERE login = 'XXX';  --結果為 1

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM