MySQL 5.7+ 支持JSON数据类型。
相比于Json格式的字符串类型,JSON数据类型的优势有:
- 存储在JSON列中的JSON文档的会被自动验证。无效的文档会产生错误;
- 最佳存储格式。存储在JSON列中的JSON文档会被转换为允许快速读取文档元素的内部格式。
存储在JSON列中的任何JSON文档的大小都受系统变量max_allowed_packet的值的限制,可以使用JSON_STORAGE_SIZE()函数获得存储JSON文档所需的空间。
创建表
CREATE TABLE t_json(id INT PRIMARY KEY , NAME VARCHAR (20) , info JSON);
插入记录
INSERT INTO t_json(id,sname,info) VALUES (1 , 'test' , '{"time":"2017-01-01 13:00:00","ip":"192.168.1.1","result":"fail"}' );
INSERT INTO t_json(id,sname,info) VALUES (2 , 'my' ,JSON_OBJECT( "time" ,NOW(), 'ip' , '192.168.1.1' , 'result' , 'fail' ));
查询IP键
SELECT sname,JSON_EXTRACT(info, '$.ip' ) FROM t_json;
查询有多少个键
SELECT id,json_keys(info) AS "keys" FROM t_json;
删除键
UPDATE t_json SET info = json_remove(info, '$.ip' );
增加键
UPDATE t_json SET info = json_set(info, '$.ip' , '192.168.1.1' );
变更值
UPDATE t_json SET info = json_set(info, '$.ip' , '192.168.1.2' );
版权声明:本文为qq_17376623原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。