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判断是否包含汉字

    BEGIN DECLARE l_acode INT DEFAULT 0; — SET @len = length(carplate); IF (@len = 0) THEN RETURN 0; END IF; SET l_acode = ascii(carplate); IF (l_acode >= 124) THEN RETURN 1; END I…

    MySQL 2023年4月13日
    00
  • MySQL错误提示:sql_mode=only_full_group_by完美解决方案

    MySQL错误提示:sql_mode=only_full_group_by 是在 MySQL 5.7 版本中引入的一个新特性。当开启该模式时,如果使用了GROUP BY语句但是SELECT语句中的列名没有在GROUP BY中出现,或者在SELECT语句中使用了聚合函数,但是列名并不在GROUP BY语句中,则会抛出“1055 error – ‘XXXX’ i…

    MySQL 2023年5月18日
    00
  • 利用Java+MySQL实现附近功能实例

    下面详细讲解利用Java+MySQL实现附近功能实例的完整攻略,包括以下几个步骤: 确定技术栈和工具 在实现附近功能的过程中,我们需要使用到Java和MySQL,具体而言,主要使用以下工具和框架: Eclipse:Java开发的集成开发环境 Maven:项目管理工具 Spring Boot:Java编写的Web应用程序的开发框架 JPA:Java Persi…

    MySQL 2023年5月19日
    00
  • Mysql 存储过程

    MySQL 存储过程是从 MySQL 5.0 开始逐渐增加新的功能。存储过程在实际应用中也是优点大于缺点。不过最主要的还是执行效率和SQL 代码封装。特别是 SQL 代码封装功能,如果没有存储过程。 在外部程序访问数据库时(例如 PHP),要组织很多 SQL 语句。 特别是业务逻辑复杂的时候,一大堆的 SQL 和条件夹杂在 PHP 代码中,让人不寒而栗。现在…

    MySQL 2023年4月16日
    00
  • MySQL性能优化之max_connections配置参数浅析

    MySQL性能优化之max_connections配置参数浅析 什么是max_connections max_connections是MySQL数据库中的一个配置参数,用于设置同时连接到MySQL服务器的最大客户端数量。一旦超过这个数量,新的客户端连接将无法被接受并返回错误信息。 如何设置max_connections 在MySQL配置文件my.cnf中,可…

    MySQL 2023年5月19日
    00
  • mysql修改sql_mode报错的解决

    下面是关于“mysql修改sql_mode报错的解决”的完整攻略。 问题背景 在MySQL数据库中,我们可以使用set命令来修改sql_mode的值,如下所示: set global sql_mode=’blahblah’; 但是,在修改sql_mode时,可能会遇到如下错误提示: ERROR 1231 (42000): Variable ‘sql_mode…

    MySQL 2023年5月18日
    00
  • MySQL控制流函数(-if ,elseif,else,case…when)

    MySQL控制流函数主要是用于控制程序的执行流程,使用这些函数可以根据不同的条件执行不同的代码块。常用的控制流函数有if、elseif、else、case和when,下面我来逐个介绍。 if函数 if函数语法如下: IF(expression, true_value, false_value) 其中,expression为一个布尔表达式,true_value…

    MySQL 2023年5月19日
    00
  • mysql安装后.net程序运行出错的解决方法

    以下是关于“mysql安装后.net程序运行出错的解决方法”的完整攻略: 问题描述 安装了mysql数据库后,在.net程序运行时可能会出现以下错误提示: MySql.Data.MySqlClient.MySqlException: ‘Authentication to host ‘[localhost]’ for user ‘root’ using met…

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