mysql8.0 新特性,对json类型的常用操作

时间:2024-08-26 12:35:08

mysql8 新特性-json数据类型操作

 -- 根据key(可多个)获取value
SELECT JSON_EXTRACT('{"id": 14, "name": "Aztalan"}', '$.name','$.id');
-- 修改指定Key的Value值
select json_set('{"id": 14, "name": "Aztalan"}','$.id','222');
-- 查询指定Key是否存在,存在返回1,不存在返回0
select json_contains_path('{"id": 14, "name": "Aztalan"}','one','$.i');
-- 根据key获取value 简写
SELECT content -> "$.amount",content -> "$.type" from resource;
-- 查询value值所在路径 '%%'如包含其中字符就返回path,类似like。'_a' :以a结尾的数据
-- 参数one:匹配到第一个path就返回,可换成all 返回所有对应path
SET @j = '["abcc", [{"k": "10"}, "def"], {"x":"abc"}, {"y":"bcd"}]';
-- SELECT JSON_SEARCH(@j, 'one', '%k%');
SELECT JSON_SEARCH(@j, 'all', '_bc'); -- 查询content 里 $[1] 路径中 value为 10的具体路径,找不到返回null
SELECT JSON_SEARCH(content, 'one', '10', null, '$[1]');
-- content 中 $.goods 路径是否包含false
JSON_CONTAINS(content, 'false','$.goods')