MySQL json样式数据查询、修改等操作

最近接了一个不友好的项目,整个项目中好多关键数据存成了json串,项目再开发新需求时各种不友好,查询统计更是举步维艰,建议大家设计数据结构还是要遵循第三范式,该分表的分表,改分字段的分字段,json能不用最好别用,第一次开发时数据保存时确实爽,之后随着需求的变更和叠加,之后肯定会被维护人吐槽的,自己还是要对自己作品负债的嘛-_-

废话不说了,下边是关于json的sql整理,客观请笑纳~

#1.通过包含
select * from doc_customer where json_contains(customer_info, '{ "city": "北京市"}')

#2.通过json中的Key:value
select * from doc_customer where JSON_CONTAINS(customer_info,json_object("city","北京市")) 

#3.json中的数据
select * from doc_customer where JSON_CONTAINS(customer_info,  json_array(json_object("companycontact","Air21")))

#4.修改
UPDATE doc_customer SET customer_info = JSON_REPLACE(customer_info, '$.city', '天津') WHERE id = 1;

#5.创建表
CREATE TABLE t_json(id INT PRIMARY KEY, NAME VARCHAR(20) , info  JSON);
 
#6.插入记录
INSERT INTO t_json(id,sname,info) VALUES(1 ,'test','{"time":"2019-01-01 13:00:00","ip":"192.168.0.1","result":"fail"}');
INSERT INTO t_json(id,sname,info)  VALUES(2 ,'my',JSON_OBJECT("time",NOW(),'ip','192.168.0.1','result','fail'));
 
#7.查询IP键
SELECT sname,JSON_EXTRACT(info,'$.ip') FROM t_json;

#8.查询有多少个键
SELECT id,json_keys(info) AS "keys" FROM t_json;
  
#9.删除键
UPDATE t_json SET info = json_remove(info,'$.ip');

#10.增加键
UPDATE t_json SET info = json_set(info,'$.ip','192.168.0.1');

#11.变更值
UPDATE t_json SET info = json_set(info,'$.ip','192.168.0.2');

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值