一、注意事项
1.初始化问题
json类型字段,默认值不要设置为Null,可以给个空json串 {} 的默认值。
但是mysql不支持给json类型的字段设置默认值。
所以,最终方案是在初始化insert记录的时候,json类型字段一定要给个初始值。可以是:{},[],
或其它不为空不为null的初始值。
个人初始化值为{}.
2.字符串提取问题
取值: json_extract(json字段,"$.key值"); 取出的字符串存在引号
取值: json字段 ->> '$.attribute'; 取出的字符串不存在引号
二、常用sql操作
1. json_merge 合并Json并返回
update `user` set inviteeMap = json_merge(inviteeMap, '{"xx1":100}')
where `account` = '100089';
2. 插入json
update `user` set inviteeMap = json_insert(inviteeMap, '$.a1', "111")
where `account` = '100089';
3.插入或者更新json字段。
update `user` set inviteeMap = json_set(inviteeMap, '$.a', "111")
where `account` = '100089';
4.抽取json字段的值。
update `user` set inviteeMap = json_extract(inviteeMap, '$.a')
where `account` = '100089';
5,移除json的某个属性
update `user` set inviteeMap = json_remove(inviteeMap,'$.b')
where `account` = '100089';
参考链接:
https://www.digitalocean.com/community/tutorials/working-with-json-in-mysql#step-3-reading-the-data-from-the-json-field
https://www.cnblogs.com/gongzhuiau/p/12037114.html
http://t.zoukankan.com/name-lizonglin-p-14614270.html