---创建一个可以存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
浙公网安备 33010602011771号