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