1.json_merge合并Json并返回
update`user`setinviteeMap=json_merge(inviteeMap,'{“xx1″:100}’)where`account`=’100089′;
2.插入json
update`user`setinviteeMap=json_insert(inviteeMap,’$.a1′,”111″)where`account`=’100089′;
3.插入或许更新json字段。
update`user`setinviteeMap=json_set(inviteeMap,’$.a’,”111″)where`account`=’100089′;
4.更新json字段。
update`user`setinviteeMap=json_replace(inviteeMap,’$.a1′,”updatejson”)where`account`=’100089′;
5.抽取json字段的值。
update`user`setinviteeMap=json_extract(inviteeMap,’$.a’)where`account`=’100089′;
6.将对象转化为json。
update`user`setinviteeMap=json_object(‘a’,1,’b’,2)where`account`=’100089′;
7,移除json的某个属性
update`user`setinviteeMap=json_remove(inviteeMap,’$.b’)where`account`=’100089′;
mysql存储json优缺点
在最近的一次项目开发进程傍边,在数据表设计阶段,对是否用json格局存储某些数据我们产生了分歧。以往项目中对此点比较随意,致使数据表中有些json格局数据体积很大,层次很深,我忧虑这会下降数据查询和解析的功率。因而我开端思考,mysql中是否应该运用json格局存储数据,若是是那应该何时运用。查阅了不少材料后总结以下:mysql
优势:sql
一、最直接的好处是不用为数据中的每一个key值新建一个字段,可以任意的增减字段而无需修正数据表结构,乃至可以减小数据表的设计。数据库
二、可以减小数据表的查询,减小相关查询,一个查询的结果就可以替代几个查询的结果,下降数据库服务器的压力。json
一起缺陷也是明显的:服务器
一、json数据只是只能用于展现display,若是用于条件查询,数据更新其功率是很低的,而且难于优化,不要尝试在json字段上进行查询优化。性能
二、尽管mysql5.7支撑了json类型,但mysql做为联系型数据库,对标准化的column-per-value支撑更好,包括数据类型约束、长度约束,惟一索引约束,查询索引优化,外键相关,相关查询支撑,运算支撑等,这些都是json中key无法达到的。优化
三、将常常运用的查询字段从json数据中剥离出来形成独自的字段,尽管可以改善查询问题,但你最好有先见之明,若是后期进行剥离就会触及代码修正和数据搬迁,遇到多版本的话,还或许呈现数据冗余的问题,处理很差还会呈现数据不一致问题,并不只仅这么简单,必定慎用。设计
四、存储json的text类型性能并不乐观。索引
五、大JSON的解析性能一样不乐观,而且关于中文数据,纯JSON太占空间了开发
总结:
一、不主张在联系型数据库中运用json格局,若是由于字段不必定,任意性强,何不试试非联系型数据库如MongoDB/Redis。
二、若是运用json格局保存数据,请保证数据只是用做展现,若是触及条件查询、更新等操做请不要运用json。
三、常用的字段主张也不要存放在json中,即便不被用做查询条件,由于应用程序每次解析仍然是一个耗时的操做。