MySQLJSON函数及判断空
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"%';
json值的类型有哪些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
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论