mysql字段的数据类型支持json格式,可以直接存储json数组和json对象。
一、插入json数据的方式有两种
1、以普通字符串形式插入,需要遵循 json 格式
2、用 内置函数(JSON_OBJECT和JSON_ARRAY)创建JSON数据再插入
二、查询 JSON 中字段的数据
1、column -> ‘path’ 和 JSON_EXTRACT(column, ‘path’)形式访问指定字段的具体数据。(*注意path外面都要用单引号包起来)
其中 column 表示要查询的数据字段列名;
path 为 JSON 数据的访问路径,path格式为 $.path 或 $[idx]。
$.path 用于 JSON对象类型数据;
$[idx] 用于 JSON数组类型数据;
$ 代表整个 JSON 数据的 root 节点;
path 为访问字段 key,如果字段名包含空格,则需要用双引号包住,如 $.”nick name”;(*注意中文字段名也需要双引号包住)
[idx] 是数组的索引。
2、-> 和JSON_EXTRACT查询到的字段字符串类型还会有个双引号,还需要做一层处理,可以使用 ->>和JSON_UNQUOTE 去除,且转义符也会去除。
JSON_UNQUOTE(JSON_EXTRACT(column, path)) 等价于 column->>path
3、多级查询的方式有两种:
① column -> ‘$.key.childKey’ path点号连接子集字段的方式访问
② JSON_EXTRACT(JSON_EXTRACT(column, path), path) JSON_EXTRACT嵌套的方式
③column->’$[*].key’ 可以查询json数组所有key,返回数组
三、JSON字段的条件搜索
1、精确查询json类型字段
where column-> ‘$.key’ = value
2、模糊查询JsonArray类型字段
where column->’$[*].key’ like ‘%value%’
3、精确查询JsonArray类型字段
where JSON_CONTAINS(column,JSON_OBJECT(‘key’, “value”))
4、多层级关系,模糊查询所有的
where column->’$**.key’ like ‘%value%’
四、JSON字段的更新操作 1、更新字段
JSON_SET(column, path, val[, path, val] …) 更新或插入
JSON_REPLACE(column, path, val[, path, val] …) 只更新
2、新增字段
JSON_INSERT(column, path, val[, path, val] …) 插入新字段,不会改变已经存在的
3、删除字段
JSON_REMOVE(column, path[, path] …) 删除字段
以上就是mysql中json怎么使用的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/152414.html
微信扫一扫
支付宝扫一扫