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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM