首页 > 数据库 >mysql 处理 json 字段

mysql 处理 json 字段

时间:2023-11-22 11:34:44浏览次数:33  
标签:name 处理 extract json tab mysql data

1.查看包含json字段的表信息

mysql> desc tab_json;
+-------+------------+------+-----+---------+----------------+
| Field | Type       | Null | Key | Default | Extra          |
+-------+------------+------+-----+---------+----------------+
| id    | bigint(20) | NO   | PRI | NULL    | auto_increment |
| data  | json       | YES  |     | NULL    |                |
+-------+------------+------+-----+---------+----------------+
2 rows in set (0.00 sec)

mysql> show create table tab_json;
+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table    | Create Table                                                                                                                                                                |
+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| tab_json | CREATE TABLE `tab_json` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `data` json DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 |
+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

mysql> select * from tab_json;
+----+----------------------------------------------------------------+
| id | data                                                           |
+----+----------------------------------------------------------------+
|  1 | {"Tel": "132223232444", "name": "david", "address": "Beijing"} |
|  2 | {"Tel": "13390989765", "name": "Mike", "address": "Guangzhou"} |
+----+----------------------------------------------------------------+
2 rows in set (0.00 sec)

2.json_extract函数的使用

mysql> select json_extract('{"name":"Zhaim","tel":"13240133388"}',"$.tel");
+--------------------------------------------------------------+
| json_extract('{"name":"Zhaim","tel":"13240133388"}',"$.tel") |
+--------------------------------------------------------------+
| "13240133388"                                                |
+--------------------------------------------------------------+
1 row in set (0.00 sec)

mysql> select json_extract('{"name":"Zhaim","tel":"13240133388"}',"$.name");
+---------------------------------------------------------------+
| json_extract('{"name":"Zhaim","tel":"13240133388"}',"$.name") |
+---------------------------------------------------------------+
| "Zhaim"                                                       |
+---------------------------------------------------------------+
1 row in set (0.00 sec)

3.对tab_json表使用json_extract函数

mysql> select json_extract(data,'$.name') from tab_json;
+-----------------------------+
| json_extract(data,'$.name') |
+-----------------------------+
| "david"                     |
| "Mike"                      |
+-----------------------------+
2 rows in set (0.00 sec)

mysql> select json_extract(data,'$.name'),json_extract(data,'$.tel') from tab_json;  #如果查询没有的key,那么是可以查询,不过返回的是NULL.
+-----------------------------+----------------------------+
| json_extract(data,'$.name') | json_extract(data,'$.tel') |
+-----------------------------+----------------------------+
| "david"                     | NULL                       |
| "Mike"                      | NULL                       |
+-----------------------------+----------------------------+
2 rows in set (0.00 sec)

mysql> select json_extract(data,'$.name'),json_extract(data,'$.address') from tab_json;
+-----------------------------+--------------------------------+
| json_extract(data,'$.name') | json_extract(data,'$.address') |
+-----------------------------+--------------------------------+
| "david"                     | "Beijing"                      |
| "Mike"                      | "Guangzhou"                    |
+-----------------------------+--------------------------------+
2 rows in set (0.00 sec)

参考链接: https://www.cnblogs.com/chuanzhang053/p/9139624.html

标签:name,处理,extract,json,tab,mysql,data
From: https://www.cnblogs.com/bitterteaer/p/17848588.html

相关文章

  • java类转mysql表创建语句
    packagecn.eangaie.cloud.wx3562;importcn.hutool.core.io.FileUtil;importcn.hutool.core.lang.Console;importcom.baomidou.mybatisplus.annotation.TableId;importcom.baomidou.mybatisplus.annotation.TableName;importio.swagger.annotations.ApiModelProper......
  • MySQL-重置主键自动递增值-从头开始
    如果你想要重置MySQL数据库中的AUTO_INCREMENT值并让它从头开始增加新的ID,请按照以下步骤进行操作:首先,确定你要修改的表格名和要修改的字段名。例如,假设你有一个名为“users”的表格,并且该表格中的主键字段名为“id”。然后,执行以下SQL命令来更改该字段的当前自动递增计数器:ALT......
  • Debezium之对于数据主键更新的处理
    简介Debezium在对主键进行更新的时候,采用先发送删除事件,然后发送创建事件,来保证数据的一致性。相关代码io.debezium.relational.RelationalChangeRecordEmitter#emitUpdateRecord......
  • 拓扑学在污水处理中的应用:污水处理拓扑图的工艺优化和控制技术
    随着城市化进程的不断加速,城市污水处理已经成为了一个重要的问题。污水处理不仅关系到城市环境的质量,还直接影响着人们的生活质量和健康。污水处理拓扑图作为一种新型的污水处理技术,已经被广泛应用于各种污水处理设施中。本文将介绍污水处理拓扑图的优势、应用场景和未来发展趋势......
  • mysql无法登陆,报错ERROR 1045 (28000): Access denied for user 'root'@'localhost' (
    问题描述在使用命令行登录MySQL时出现了下述问题: 出错原因usingpassword:NO:表示输入没有输入密码就尝试登陆了usingpassword:YES:表示输入了密码,但密码错误 解决方案:修改密码1.修改mysql配置文件my.cnf。在 [mysqld]增加skip-grant-tables 无密码进入mys......
  • 【MySQL】配置文件
    #Disablingsymbolic-linksisrecommendedtopreventassortedsecurityrisks#symbolic-links=0#Settingsuserandgroupareignoredwhensystemdisused.#Ifyouneedtorunmysqldunderadifferentuserorgroup,#customizeyoursystemdunitfilefor......
  • MySql 中 DATEDIFF() 用法
    DATEDIFF函数用于计算两个日期之间的差值,并以天数返回结果。它的语法如下:DATEDIFF(end_date,start_date)其中,end_date和start_date是要计算差值的结束日期和起始日期。以下是一个示例,计算两个日期之间的天数差值:SELECTDATEDIFF('2023-11-21','2023-11-01')ASdays_di......
  • UnhandledPromiseRejectionWarning: SyntaxError: Unexpected token '??=' 报错处理
    在用vite创建react的时候install完成后输入pnpmrundev突然蹦出UnhandledPromiseRejectionWarning:SyntaxError:Unexpectedtoken'??='一脸闷逼,百度了一下。哦吼,逻辑空赋值(??=)是ES2021的语法,nodev15.0.0以上才支持逻辑空赋值(??=)的语法。之前为了兼容旧代码使用的n......
  • 前端项目实战叁佰伍拾陆react-admin和material ui-处理形成树状数据结构2
    dataProviders.getStyleTree('t_prod_category','t_prod_style').then((res:any)=>{console.log(res,"resssssssss")letarr:any=[]letarr1:any=[{key:0,title:"品类管理",......
  • 前端项目实战叁佰伍拾伍react-admin和material ui-处理形成树状数据结构1
    if(data!==undefined){lettemp:ITreeData[]=[{key:'0',title:'工厂管理',children:newArray<ITreeData>()}];//向从数据库查询到的数据中添加Tree结构所需要的字段,key使用id,title使用name;data.forEach(it=>{......