MySQL JSON操作语句
Pluto Lv2

删除json下的某个属性

1
update xiaomei_files SET url = JSON_REMOVE(`url`, '$.jd')

查询json下的某个属性不为空的数据

1
select *  from xiaomei_files where  JSON_EXTRACT ( `url`, '$.jd') IS NOT NULL;

替换json下某个属性的值

json_unquote

1
update xiaomei_files SET url = JSON_REPLACE(url, '$.wenku', json_unquote(REPLACE( `url`->'$.wenku','bcebos','aoaostar')))

方法罗列:

分类 函数 描述

  • 创建json
1
2
3
4
5
json_array 创建json数组

json_object 创建json对象

json_quote 将json转成json字符串类型

查询json

1
2
3
4
5
6
7
8
9
10
11
12
13
json_contains 判断是否包含某个json值

json_contains_path 判断某个路径下是否包json值

json_extract 提取json值

column->path json_extract的简洁写法,MySQL 5.7.9开始支持

column->>path json_unquote(column -> path)的简洁写法

json_keys 提取json中的键值为json数组

json_search 按给定字符串关键字搜索json,返回匹配的路径

修改json

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
json_append 废弃,MySQL 5.7.9开始改名为json_array_append

json_array_append 末尾添加数组元素,如果原有值是数值或json对 象,则转成数组后,再添加元素

json_array_insert 插入数组元素

json_insert 插入值(插入新值,但不替换已经存在的旧值)

json_merge 合并json数组或对象

json_remove 删除json数据

json_replace 替换值(只替换已经存在的旧值)

json_set 设置值(替换旧值,并插入不存在的新值)

json_unquote 去除json字符串的引号,将值转成string类型

返回json属性

1
2
3
4
5
6
7
json_depth 返回json文档的最大深度

json_length 返回json文档的长度

json_type 返回json值得类型

json_valid 判断是否为合法json文档
  • 本文标题:MySQL JSON操作语句
  • 本文作者:Pluto
  • 创建时间:2022-04-13 14:45:44
  • 本文链接:https://blog.aoaostar.com//post/98c7a8b5/
  • 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
 评论