MySQL中的JSON基本操作

本文介绍了MySQL中如何对JSON类型字段进行操作,包括建表时设置JSON字段、插入有效JSON字符串、查询JSON对象属性和数组、通过虚拟列加速查询、更新及删除数据。详细讲解了各种方法和示例。
摘要由CSDN通过智能技术生成

参考资料:
1、MySQL5.7的JSON基本操作
2、Mysql 提取JSON数组中的某一个属性或某一个属性列表
3、mysql官方帮助文档

建表

新建表时字段类型可以直接设置为json类型,比如:

CREATE TABLE `test_user`(`id` INT PRIMARY KEY AUTO_INCREMENT, `name` VARCHAR(50) NOT NULL, `info` JSON);

json类型字段可以为NULL

插入数据

INSERT INTO test_user(`name`, `info`) VALUES('xiaoming','{"sex": 1, "age": 18, "nick_name": "小萌"}');

json类型的字段必须时一个有效的json字符串
可以使用JSON_OBJECT()函数构造json对象:

INSERT INTO test_user(`name`, `info`) VALUES('xiaohua', JSON_OBJECT("sex", 0, "age", 17));

使用JSON_ARRAY()函数构造json数组:

INSERT INTO test_user(`name`, `info`) VALUES('xiaozhang', JSON_OBJECT("sex", 1, "age", 19, "tag", JSON_ARRAY(3,5,90)));

现在查看test_user表中的数据:

mysql> select * from test_user; 
+----+-----------+--------------------------------------------+ 
| id | name      | info                                       |
+----+-----------+--------------------------------------------+ 
|  1 | xiaoming  | {
  "age": 18, "sex": 1, "nick_name": "小萌"} | 
|  2 | xiaohua   | {
  "age": 17, "sex": 0}                      |
|  3 | xiaozhang |
MySQLJSON基本操作主要包括合并JSON数据、创建JSON数组形式和JSON对象的数据、创建JSON类型的字段以及修改JSON数据。 合并JSON数据可以使用函数JSON_MERGE(json_doc, json_doc[, json_doc] …),其json_doc表示要合并的JSON数据。 创建JSON数组形式的数据可以使用函数JSON_ARRAY([val[, val] …]),其val表示要添加到JSON数组的值。创建JSON对象形式的数据可以使用函数JSON_OBJECT([key, val[, key, val] …]),其key表示键,val表示值。 在MySQL 5.7版本开始,可以直接设置字段类型为json类型来存储JSON数据。例如,可以创建一张名为test_user的表,并设置一个名为data的字段类型为json: CREATE TABLE `test_user`(`id` INT PRIMARY KEY AUTO_INCREMENT, `data` JSON); 修改JSON数据的方法包括在JSON数组后增加新的数据和在JSON数组插入新的数据。可以使用函数JSON_ARRAY_APPEND(json_doc, path, val[, path, val] …)在JSON数组后增加新的数据,其json_doc表示要修改的JSON数据,path表示要添加数据的路径,val表示要添加的值。可以使用函数JSON_ARRAY_INSERT(json_doc, path, val[, path, val] …)在JSON数组插入新的数据,其json_doc表示要修改的JSON数据,path表示要插入数据的路径,val表示要插入的值。 通过以上方法,可以对MySQLJSON数据进行基本操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值