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

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')

posted @ 2019-06-20 18:15  渔阳nice  阅读(3726)  评论(0编辑  收藏  举报