新版本5.7.20中加入了对json字段的支持,这无疑对数据的操作更加方便了。下面我们就来一起学习下在mysql中如何操作json字段
一, 创建表
CREATE TABLE `t_sys_userinfo` (
`USR_NO` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '内部用户号',
`PROV` varchar(16) COMMENT '省份',
`CITY` varchar(8)COMMENT '城市',
`LIKE` json COMMENT '爱好'
`RULE_STS` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '状态\r\n S:生效\r\n F:失效',
`TM_SMP` timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '时间戳',
PRIMARY KEY (`USR_NO`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci
二, 插入数据
INSERT INTO `t_sys_userinfo` VALUES ('USR201010081501280001', '福建省', '厦门市', '[\"足球\", \"篮球\", \"羽毛球\"]', 'S', '2017-06-22 10:11:43');
三, 查询数据
1,模糊查询:
SELECT *
FROM t_sys_userinfo t
where JSON_SEARCH(t.LIKE, 'one', '羽毛球%') IS NOT NULL;
SELECT *
FROM t_sys_userinfo t
where JSON_SEARCH(t.LIKE, 'all', '羽毛球%') IS NOT NULL;
-- one_or_all:"one"表示查询到一个即返回;"all"表示查询所有。
2,非模糊查询:
SELECT *
FROM t_sys_userinfo t
where JSON_CONTAINS(t.`LIKE`, '["羽毛球"]')
未完