---创建一个可以存json字段的表

create table 表名  ( 列名称 类型,列名称 类型,列名称 类型,......)

--创建如下

create table json_test (id int primary key, type_name varchar(20), jbxx json); --jbxx 基本信息 json  列类型为json类型

 

--插入操作

--第一种插入方式
(key,'{key:value,
key:value,key:value,key:value,}')
insert into json_test (id,type_name,jbxx) VALUES (3,"员工",'{"name":"王莽","age":36,"salary":9999,"sex":"1","adress":"维纳斯岛"}');

 

--第二种插入方式
json_object(key,value,
key,value,key,value,key,value,key,value,..........
INSERT INTO json_test(id,type_name,jbxx) VALUES( 222, '董事', JSON_OBJECT('name','风里希',"age", 22, "salary",39999,"time", NOW()));

 

--查询操作
SELECT  jbxx->'$.sex' FROM json_test;

SELECT JSON_EXTRACT(jbxx,'$.name') FROM json_test;

SELECT id ,jbxx FROM json_test WHERE jbxx    ->'$.age'=36;

SELECT id,json_keys(jbxx) FROM json_test;

 

-- 修改操作
UPDATE json_test SET jbxx= json_set(jbxx,'$.ip','192.168.1.1656') WHERE id = 2; 

UPDATE json_test SET jbxx = json_set(jbxx,'$.ip','192.168.1.1') WHERE id = 2;

--json_set 说明的是 当info字段中没有ip这列的时候,增加一列值 ,如果有列和值的话,修改这列的值。 条件为2的行数


--删除操作

UPDATE json_test SET jbxx= json_remove(info,'$.ip') WHERE id = 2;

官方文档

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

posted on 2021-03-09 15:13  盼着盼着  阅读(487)  评论(0)    收藏  举报