Mysql更新Blob存储的Josn数据

Mysql更新blob存储的Josn数据

记录一次mysql操作blob格式存储的json字符串数据

1、检查版本

-- 版本5.7以上才可以能执行json操作
select version(); 

2、创建测试数据

-- 创建测试表及测试数据
CREATE TABLE test_json_table AS SELECT
UUID(),
'{"test1": {"value": "1", "stringValue": "1"}, "test2": {"value": "2", "stringValue": "2"}, "test3": {"value": "3", "stringValue": "3"}}' datas;
-- 修改 datas字段类型为 blob;
ALTER TABLE `test_json_table` 
MODIFY COLUMN `datas` blob NOT NULL AFTER `UUID()`;

Mysql更新Blob存储的Josn数据_第1张图片

3、操作–查看数据

-- 查看验证数据是否正常
-- 查看验证数据是否正常
select * from test_json_table;
select convert(datas using utf8) from test_json_table;
-- 查看test1的value字段
select JSON_EXTRACT(CAST(CONVERT(datas USING utf8) as json), '$.test1.value') from test_json_table; 
-- 或
select datas-> '$.test1.value' from
 (select CONVERT(datas USING utf8) as datas from test_json_table) temp;
-- 获取test1的value的值(直接返回字符串,没有引号);
select datas  ->>'$.test1.value' from 
 (select CONVERT(datas USING utf8) as datas from test_json_table) temp;

4、操作-修改

-- 修改 test1.value= 0
update test_json_table set datas = JSON_REPLACE( CAST(CONVERT(datas USING utf8) as json), '$.test1.value', '0') ;

你可能感兴趣的:(数据库,mysql,mysql,数据库)