mysql json类型增删改查

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版权协议,转载请附上原文出处链接和本声明。