因为项目需要,存储字段存储成了JSON格式,在项目中是将查询出来的值通过jackson转成相应的bean进行处理的,觉得不够简单方便。
对于某一列是json而言,需要使用内置的函数 json_extract(列名,'$.key') 这个函数有2个参数,第一个参数是json列的列名,第二个参数$.key 其中key为json字符串中某一个key。
来源于网络,只是收集方便以后查找!从mysql 5.7开始支持json字段类型,sqlserver2016版本开始支持json字段,这是一种非常好用的格式!
1.插入含有json数组的记录
2.插入含有json对象的记录
//生成一个包含指定元素的json数组。
//生成一个包含指定K-V对的json object。如果有key为NULL或参数个数为奇数,则抛错。
//查询json文档是否在指定path包含指定的数据,包含则返回1,否则返回0。如果有参数为NULL或path不存在,则返回NULL。
//查询是否存在指定路径,存在则返回1,否则返回0。如果有参数为NULL,则返回NULL。
//one_or_all只能取值”one”或”all”,one表示只要有一个存在即可;all表示所有的都存在才行。
//从json文档里抽取数据。如果有参数有NULL或path不存在,则返回NULL。如果抽取出多个path,则返回的数据封闭在一个json array里。
//获取json文档在指定路径下的所有键值,返回一个json array。如果有参数为NULL或path不存在,则返回NULL。
//查询包含指定字符串的paths,并作为一个json array返回。如果有参数为NUL或path不存在,则返回NULL。
//one_or_all:”one”表示查询到一个即返回;”all”表示查询所有。
//search_str:要查询的字符串。 可以用LIKE里的’%’或‘_’匹配。
//在path指定的json array元素插入val,原位置及以右的元素顺次右移。如果path指定的数据非json array元素,则略过此val;如果指定的元素下标超过json array的长度,则插入尾部。
//在指定path下插入数据,如果path已存在,则忽略此val(不存在才插入)。
//替换指定路径的数据,如果某个路径不存在则略过(存在才替换)。如果有参数为NULL,则返回NULL。
//设置指定路径的数据(不管是否存在)。如果有参数为NULL,则返回NULL。
//移除指定路径的数据,如果某个路径不存在则略过此路径。如果有参数为NULL,则返回NULL。
//获取json文档的深度。如果参数为NULL,则返回NULL。
//获取指定路径下的长度。如果参数为NULL,则返回NULL。
//获取json文档的具体类型。如果参数为NULL,则返回NULL。
//判断val是否为有效的json格式,是为1,不是为0。如果参数为NUL,则返回NULL。
是否包含特定对象的JSON文档路径 |
无论是JSON文件包含任何数据路径 |
JSON文档的最大深度 |
从JSON文档返回数据 |
将数据插入到JSON文档 |
从JSON文件密钥数组 |
在JSON文档中的元素数 |
合并的JSON文件,免去重复键的值 |
合并的JSON文件,保存重复键 |
版画在人类可读的格式JSON文档,每个数组元素或对象成员打印在新的行中,缩进两个空格就其母。 |
从JSON文件中删除数据 |
在JSON文件的值替换 |
在JSON文件价值路径 |
将数据插入到JSON文档 |
用于一个JSON文件的二进制表示形式存储空间;一个JSON柱,空间时使用的文档插入到任何部分更新之前, |
JSON值是否是有效的 |
如果你JSON一面存的是数组的话,就要用对应的函数了。