mysql5.7 JSON类型体验

前言:为了兼容传统的sql语句,mysql5.7支持原生的json格式的字符串,即将关系型数据库和文档型集于一身。

1.使用json类型需要先查看一下当前mysql的版本

select version();

115122_gdNn_2408834.png

2.创建json类型的字段,用mysql图形客户端的需要下载支持mysql5.7新特型的。

CREATE TABLE `test_table` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `content` json DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;

 

3.插入

INSERT into test_table VALUES(null,'{"name":"测试1","age":1}');
INSERT into test_table VALUES(null,'{"name":"测试2","age":10}');

 

4.提取json里面的参数

SELECT json_extract(content,'$.name') as name ,json_extract(content,'$.age') as age from test_table

 

5.更新json字段的参数

JSON_REPLACE()替换已有的,如果是新的参数,不会添加

update test_table set content=json_replace(content,'$.name',"测1") where json_extract(content,'$.age')=1

 

6.添加json字段的参数

JSON_INSERT()可以添加新值,但它不会替换已存在的值。

update test_table set content=json_insert(content,'$.sex',"男") where json_extract(content,'$.age')=1

 

7.更新或新增json字段的参数

JSON_SET()替换已有的参数,如果没有会新增。

update test_table set content=json_set(content,'$.sex1',"女") where json_extract(content,'$.age')=1

 

8.删除json字段的参数

JSON_REMOVE()移除JSON文档中给定的一个或多个参数,如果不存在的话,函数会忽略。

update test_table set content=json_remove(content,'$.sex1') where json_extract(content,'$.age')=1

 

博客地址:https://my.oschina.net/wangnian

转载于:https://my.oschina.net/wangnian/blog/849383

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值