mysql增删改查json中的某个字段

SELECT json_extract(字段名,'$.json结构') FROM 表名;
如果json里有双引号,那这样取出来的数据也带双引号,要去掉就使用REPLACE函数
例如:
ps_push_data表里的push_data字段存的数据为:{"carRenewalInfoVo":{"licence":"浙AF55Z0"},"code":"1","msg":"成功"}
使用sql

SELECT REPLACE(json_extract(push_data,'$.carRenewalInfoVo.licence'),'"','') FROM ps_push_data;
取出来的就是:浙AF55Z0

值得注意的是,只有MySQL5.7及以上版本才支持json数据的操作


创建表

CREATE  TABLE  t_json(id  INT  PRIMARY  KEY  NAME  VARCHAR (20) , info  JSON);
 
插入记录
INSERT  INTO  t_json(id,sname,info)  VALUES (1 , 'test' , '{"time":"2017-01-01 13:00:00","ip":"192.168.1.1","result":"fail"}' );
INSERT  INTO  t_json(id,sname,info)   VALUES (2 , 'my' ,JSON_OBJECT( "time" ,NOW(), 'ip' , '192.168.1.1' , 'result' , 'fail' ));
 
查询IP键
SELECT  sname,JSON_EXTRACT(info, '$.ip'  FROM  t_json;
查询有多少个键
SELECT  id,json_keys(info)  AS  "keys"  FROM  t_json;
 
 
删除键
UPDATE  t_json  SET  info = json_remove(info, '$.ip' );
增加键
UPDATE  t_json  SET  info = json_set(info, '$.ip' , '192.168.1.1' );
变更值
UPDATE  t_json  SET  info = json_set(info, '$.ip' , '192.168.1.2' );


————————————————
原文链接:https://blog.csdn.net/yuhui123999/article/details/83539149

https://blog.csdn.net/qyt0147/article/details/79978869

posted on 2021-06-08 20:10  Ryanyanglibin  阅读(229)  评论(0编辑  收藏  举报

导航