MySQL常用json方法使用记录

介绍

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

相关文章

已有 5 条评论
  1. 陌生人

    实用的技巧

    陌生人 回复
  2. 创业博客

    后台手动更新指用命令更新吗?

    创业博客 回复
    1. 死性不改

      @创业博客

      嗯,如果担心的话,建议备份数据,然后重新装新版本,然后导入数据

      死性不改 回复
  3. 创业思维

    网站很清爽,typecho就是不一样,最近用宝塔mysql总是更新不了,不知道是这么回事

    创业思维 回复
    1. 死性不改

      @创业思维

      我的mysql用的老版本的,没有打算更新,建议后台手工更新吧

      死性不改 回复
发表新评论