Mysql实现对json的操作插入、更新

求知探索 1年前 ⋅ 814 阅读

首先创建表:

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中。


全部评论: 0

    我有话说: