MySQL插入json问题

MySQL插入JSON问题可以分为以下几个步骤:

1. 创建表

创建表时需要用到json类型列,例如:

CREATE TABLE `example` (
  `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  `json_data` JSON NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

2. 准备JSON数据

例1.

{
  "name": "张三",
  "age": 28,
  "address": [
    {"city": "上海", "street": "南京路"},
    {"city": "北京", "street": "五道口"}
  ]
}

例2.

[
  {"name": "张三", "age": 28},
  {"name": "李四", "age": 30}
]

3. 插入JSON数据

3.1. 插入单个JSON数据

示例SQL:INSERT INTO example (json_data) VALUES ('{"name": "张三", "age": 28}');

3.2. 插入多个JSON数据

示例SQL:INSERT INTO example (json_data) VALUES ('{"name": "张三", "age": 28}'),('{"name": "李四", "age": 30}');

3.3. 插入JSON数组数据

示例SQL:INSERT INTO example (json_data) VALUES ('[
{"name": "张三", "age": 28},
{"name": "李四", "age": 30}
]');

3.4. 插入带有数组的JSON数据

示例SQL:INSERT INTO example (json_data) VALUES ('{
"name": "张三",
"age": 28,
"address": [
{"city": "上海", "street": "南京路"},
{"city": "北京", "street": "五道口"}
]
}');

4. 查询JSON数据

4.1. 查询单个JSON数据

示例SQL:SELECT json_data->>'$.name' as name from example where id = 1;

4.2. 查询数组JSON数据

示例SQL:SELECT json_data->'$.address' as address from example where id = 1;

4.3. 查询数组JSON数据中的属性值

示例SQL:SELECT json_data->'$.address[0].city' as city from example where id = 1;

通过以上操作,我们就可以在MySQL中插入和查询JSON数据了。对于多层嵌套的JSON数据,也是支持插入和查询的,只需要按照以上方法进行即可。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:MySQL插入json问题 - Python技术站

(0)
上一篇 2023年5月18日
下一篇 2023年5月18日

相关文章

  • MySQL数据表字段内容的批量修改、复制命令

    复制字段里的数据命令: SQL代码 UPDATE table SET 被替换的字段名=被复制的字段名 演示如下 SQL代码 UPDATE dede_archives SET senddate=pubdate 如何手动将同一数据表内不同字段之间的内容批量转换,可以参考下面的命令: SQL代码 UPDATE table set 字段名=REPLACE(字段名,’…

    MySQL 2023年4月16日
    00
  • 解决Go语言数据库中null值的问题

    为了解决Go语言在数据库中查询null值时的问题,可以采用以下两种方法: 方法一:使用sql.NullString / sql.NullInt64结构体 在Go语言的database/sql包中,可以使用sql.NullString和sql.NullInt64结构体来处理null值的情况。使用这两个结构体可以让Go语言中的代码更加严谨和可读性更高。 例如,通…

    MySQL 2023年5月18日
    00
  • Django 连接mysql数据库中文乱码

    2018年08月25日 20:55:15 可乐乐乐乐乐 阅读数:566   版本:CentOS6.8 python3.6.4 django1.8.2 数据库pymysql 我使用的终端是CentOS终端,CentOS桌面版安装的pycham,windows使用Navicat连接mysql数据库。 我遇到的情况大致这样,在CentOS终端进入mysql,然后查…

    MySQL 2023年4月13日
    00
  • 活动 | GreatSQL社区亮相2023 DTC 分享开源技术成果实践

    4月7-8日,年度数据库行业盛会——2023数据技术嘉年华(DTC 2023)如期而至。 此次盛会汇聚了全国各地数千名数据领域学术精英、领袖人物、技术专家、从业者和技术爱好者,共同见证行业蓬勃发展、生态融合共赢、技术迭代升级及市场风云变迁。 GreatSQL作为万里数据库主导成立的开源数据库社区,首次亮相嘉年华大会,并带来开源社区的技术成果与应用探索,助力数…

    MySQL 2023年4月17日
    00
  • Navicat Premium连接到Centos服务器上的Mysql

    1.如何通过本地连接到云服务器上的数据库? 我的配置如下: 客户端:Navicat Premium    服务器:阿里云ECS服务器中的Centos7.6系统 2.配置云服务器上的端口,也就是我们要在服务器那里打开我们要访问的端口,让外部可以访问才能连接上我们的数据库,数据库的端口默认是3306,配置步骤如下: 一、在阿里云服务器ECS控制台的安全组- -&…

    MySQL 2023年4月12日
    00
  • Mysql MyISAM与InnoDB 表锁行锁以及分库分表优化

    一、 两种存储引擎:MyISAM与InnoDB 区别与作用 1. count运算上的区别: 因为MyISAM缓存有表meta-data(行数等),因此在做COUNT(*)时对于一个结构很好的查询是不需要消耗多少资源的。而对于InnoDB来说,则没有这种缓存。 2. 是否支持事务和崩溃后的安全恢复: MyISAM 强调的是性能,每次查询具有原子性,其执行数度比…

    MySQL 2023年4月13日
    00
  • 异常: Unable to determine the provider name for provider factory of type ‘MySql.Data.MySqlClient.MySqlClientFactory’.

      报错信息: 异常: Unable to determine the provider name for provider factory of type ‘MySql.Data.MySqlClient.MySqlClientFactory’. Make sure that the ADO.NET provider is installed or regi…

    MySQL 2023年4月13日
    00
  • mysql事务,SET AUTOCOMMIT,START TRANSACTION

    http://yulei568.blog.163.com/blog/static/135886720071012444422/   MyISAM不支持 START TRANSACTION | BEGIN [WORK] COMMIT [WORK] [AND [NO] CHAIN] [[NO] RELEASE] ROLLBACK [WORK] [AND [NO]…

    MySQL 2023年4月13日
    00
合作推广
合作推广
分享本页
返回顶部