一、方法罗列
分类 函数 描述
1. 创建json
json_array 创建json数组
json_object 创建json对象
json_quote 将json转为json字符串类型
2. 查询json
json_contains 判断是否包含某个json值
json_contains_path 判断某个路径是否包含json值
json_extract 提取json值
column->path json_extract 的简写,mysql 5.7.9 开始支持
json_keys 提取json中的键值为json数组
json_search 按给定字符串关键字搜索json,返回匹配的路劲
3.修改json
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_unquote 去除json字符串的引号,将值转成string类型
4. 返回json属性
json_depth 返回json文档的最大深度
json_length 返回json文档的长度
json_type 返回值的类型
json_valid 判断是否为合法json文档
二、使用举例
MySQL 5.7.8开始支持json类型
create table t (
id int,
js json,
primary key(id)
)
插入数据
insert into t values(1,'{"a":1,"s":"abc"}')
insert into t values(2,'[1,2,{"a":123}]')
insert into t values(3,'"str"')
insert into t values(4,'123')
直接提供字符串即可。还可以用JSON_Array和JSON_Object函数来构造
insert into t values(5,JSON_Object('key1',v1,'key2',v2))
insert into t values(4,JSON_Array(v1,v2,v3))
JSON_OBJECT([key, val[, key, val] ...])
JSON_ARRAY([val[, val] ...])
JSON_SET(json_doc, path, val[, path, val] ...)
修改数据
update t