十五、MySQL基础系列笔记之JSON函数

作者: 温新

分类: 【MySql】

阅读: 2704

时间: 2020-10-17 14:13:08

MySQL5.7.8开始支持JSON数据类型,对于json类型数据的操作,MySQL提供了一系列的函数。MySQL函数功能有这样几种:创建JSON函数,查询JSON函数,修改JSON函数,查询JSON元数据函数。

函数 功能
创建JSON
json_array(v1,v2,..) 创建json数组
json_object(v1,v2,..) 创建json对象
json_quote(string)/json_unquote() 加上/去掉json文档两边的双引号
查询JSON
json_contains(target,candidate[,path]) 查询文档中是否包含指定的元素
json_contains_path() 查询文档中是否包含指定的路径
json_extract()/->/->> 根据条件提取文档中的数据
json_keys(json_doc[,path]) 提取所有key的集合
json_search() 返回所有符合条件的路径集合
修改JSON
json_merge()/json_merge_preserve 将两个文档合并
json_array_append() 数组尾部追加元素
json_array_insert() 在数组的指定位置插入元素
json_remove() 删除文档中指定位置的元素
json_replace() 替换文档中指定位置的元素
json_set() 给文档中指定位置的元素设置新值
查询JSON元数据
json_depth() json文档的深度(元素最大嵌套层数)
json_length() json文档的长度(元素的个数)
json_type() json文档类型(数组/对象/标量)
json_valid() json格式是否合法
其他函数
json_pertty() 美化json格式
json_storage_size() json文档占用的存储空间
json_storage_free() json文档更新操作后的剩余空间
json_table() 将json文档 转换为表格
json_arrayagg() 将聚合后参数中的多个值转换为json数组
json_objectagg(0) 把两个列或者表达式解释为一个key和一个value,返回一个json对象

创建json函数

mysql> select json_array('id',1,'name','www.ziruchu.com','自如初');
+---------------------------------------------------------+
| json_array('id',1,'name','www.ziruchu.com','自如初')    |
+---------------------------------------------------------+
| ["id", 1, "name", "www.ziruchu.com", "自如初"]          |
+---------------------------------------------------------+
1 row in set (0.00 sec)

json_contains(target,candidate[,path])

查询指定的元素condidate是否包含在目标json文档中,包含返回1,否则返回0.

mysql> select json_contains('[1,2,"ab"]','"ab"');
+------------------------------------+
| json_contains('[1,2,"ab"]','"ab"') |
+------------------------------------+
|                                  1 |
+------------------------------------+
1 row in set (0.00 sec)

由于篇幅原因,关于json系统的函数就不过多举例了,记得一定要练习。

2020-10-17

请登录后再评论