介绍

Mysql5.7版本以后提供了一个原生的Json类型,Json值将不再以字符串的形式存储,而是采用一种允许快速读取文本元素(document elements)的内部二进制(internal binary)格式。在Json列插入或者更新的时候将会自动验证Json文本,未通过验证的文本将产生一个错误信息。Json文本采用标准的创建方式,可以使用大多数的比较操作符进行比较操作,例如:=, <, <=, >, >=, <>, != 和 <=>。

常用使用方法

创建有json字段的表

-- 创建表
CREATE TABLE table_json(id INT PRIMARY KEY, sname VARCHAR(20) , info  JSON);

查询记录

-- 查询记录
SELECT sname,JSON_EXTRACT(info,'$.age') FROM table_json;
SELECT sname,info->'$.age' FROM table_json;
-- 查询key
SELECT id,json_keys(info) FROM table_json;

修改记录

-- 增加键
UPDATE table_json SET info = json_set(info,'$.ip','192.168.1.1') WHERE id = 2;

-- 变更值
UPDATE table_json SET info = json_set(info,'$.ip','192.168.1.2') WHERE id = 2;

-- 删除键
UPDATE table_json SET info = json_remove(info,'$.ip') WHERE id = 2;

插入

UPDATE table_json SET info = JSON_INSERT(info,'$.user-agent','chrome')

参考

https://dev.mysql.com/doc/refman/5.7/en/json-creation-functions.html

https://www.cnblogs.com/ooo0/p/9309277.html