首先创建表:
CREATE TABLE `t_tag_data` (
`zjhm` varchar(30) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT '号码',
`name` varchar(50) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT '姓名',
`tags` json NULL COMMENT '标签值列表',
PRIMARY KEY (`zjhm`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin COMMENT = '标签数据表' ROW_FORMAT = Dynamic;
SET FOREIGN_KEY_CHECKS = 1;
执行数据插入:
insert into t_tag_data(zjhm,name,tags)values('123456','张三','{"name":"张三","person":"云南人","xg":"逗比"}')
入库效果:
对该条数据进行更新,包括对json属性增加和属性的重复提交会有什么效果呢:
update t_tag_data set tags=json_set(tags,"$.name","李磊","$.sex","男") where zjhm='123456'
运用mysql的json函数json_set。$符后面跟属性名,要用双引号。执行后的效果:
我们可以从图中可以看出,json中重复的属性会被更新,新的属性会增加到json中。
注意:本文归作者所有,未经作者允许,不得转载