MySql中的json_extract函数处理json字段详情
作者:??一灰灰???? 时间:2024-01-14 21:06:23
前言
在db中存储json格式的数据,相信大家都或多或少的使用过,那么在查询这个json结构中的数据时,有什么好的方法么?取出String之后再代码中进行解析?
接下来本文将介绍一下Mysql5.7+之后提供的json_extract函数,可以通过key查询value值
1. 使用方式
数据存储的数据是json字符串,类型为我们常用的varchar即可
语法:
JSON_EXTRACT(json_doc, path[, path] …)
若json字符串非数组时,可以通过$.字段名
来表示查询对应的value
2. 使用演示
创建一个测试的表:
CREATE TABLE `json_table` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键id',
`val` json DEFAULT NULL COMMENT 'json字符串',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
插入几条数据:
insert into `json_table` values (1, '{"name": "一灰灰blog", "age": 18}');
insert into `json_table` values (2, '{"name": "一灰灰blog", "site": "https://blog.hhui.top"}');
查询json串中的name
,如下:
mysql> select json_extract(`val`, '$.name') from `json_table`;
+-------------------------------+
| json_extract(`val`, '$.name') |
+-------------------------------+
| "一灰灰blog" |
| "一灰灰blog" |
+-------------------------------+
如果查询的key不在json串中,返回的是null,而不是抛异常
mysql> select json_extract(`val`, '$.name') as `name`, json_extract(`val`, '$.site') as `site` from `json_table`;
+-----------------+-------------------------+
| name | site |
+-----------------+-------------------------+
| "一灰灰blog" | NULL |
| "一灰灰blog" | "https://blog.hhui.top" |
+-----------------+-------------------------+
接下来再看一下如果为json数组,怎么整
mysql> insert into `json_table` values (3, '[{"name": "一灰灰", "site": "https://spring.hhui.top"}]');
mysql> select json_extract(`val`, '$[0].name') from `json_table` where id = 3;
+----------------------------------+
| json_extract(`val`, '$[0].name') |
+----------------------------------+
| "一灰灰" |
+----------------------------------+
除了在查询结果中使用json_extract之外,也可以在查询条件中使用它
mysql> select * from `json_table` where json_extract(`val`, '$.name') = '一灰灰blog';
+----+------------------------------------------------------------+
| id | val |
+----+------------------------------------------------------------+
| 1 | {"age": 18, "name": "一灰灰blog"} |
| 2 | {"name": "一灰灰blog", "site": "https://blog.hhui.top"} |
+----+------------------------------------------------------------+
3. 小结
json_extract函数的使用方法,用于解析字段内value为json串的场景
来源:https://juejin.cn/post/7103482347894358046
标签:MySql,extract,json,字段
0
投稿
猜你喜欢
基于Python实现经典植物大战僵尸游戏
2021-01-28 11:17:20
Sql中将datetime转换成字符串的方法(CONVERT)
2024-01-22 10:25:59
Golang中slice删除元素的性能对比
2024-05-05 09:33:03
Go语言流程控制之goto语句与无限循环
2023-08-31 06:43:00
解析SQL Server与ASP互操作的时间处理
2009-02-01 16:40:00
XML正在接管Web服务 成为SOA的基础
2008-09-05 17:21:00
nodejs中的异步编程知识点详解
2024-05-08 10:10:55
Tensorflow 自定义loss的情况下初始化部分变量方式
2023-02-26 22:43:39
python神经网络Xception模型复现详解
2021-01-08 21:35:40
Python爬取网页信息的示例
2021-02-09 10:43:21
Python实现Matplotlib,Seaborn动态数据图的示例代码
2023-02-03 23:47:22
python实现二叉排序树
2022-08-26 04:34:37
python:解析requests返回的response(json格式)说明
2023-11-05 15:43:25
Python 模拟动态产生字母验证码图片功能
2022-02-10 21:03:35
pyinstaller打包后,配置文件无法正常读取的解决
2022-12-17 18:22:09
Python简单实现图片转字符画的实例项目
2023-02-24 02:01:47
Web设计中的黄金分割[译]
2009-02-20 13:41:00
mysql如何优化插入记录速度
2024-01-29 07:44:35
PHP实现数组根据某个字段进行水平合并,横向合并案例分析
2023-10-04 04:55:53
asp 简单分页代码
2011-03-11 10:53:00