表结构和初始数据
- 新建表结构
CREATE TABLE `json_test` (
`id` int NOT NULL AUTO_INCREMENT,
`roles` json DEFAULT NULL COMMENT '角色',
`project` json DEFAULT NULL COMMENT '项目',
PRIMARY KEY (`id`)
) ENGINE=InnoDB;
- 初始数据
INSERT INTO `ctts_dev`.`json_test`(`id`, `roles`, `project`) VALUES (1, '[{"id": 10001, "name": "管理员"}, {"id": 10002, "name": "开发"}, {"id": 10003, "name": "测试"}]', '{"id": 11111, "name": "项目1"}');
INSERT INTO `ctts_dev`.`json_test`(`id`, `roles`, `project`) VALUES (2, '[{"id": 10002, "name": "开发"}]', '{"id": 22222, "name": "项目2"}');
INSERT INTO `ctts_dev`.`json_test`(`id`, `roles`, `project`) VALUES (3, '[{"id": 10003, "name": "测试"}]', '{"id": 11111, "name": "项目1"}');
其中 roles 字段存的是 数组
[{"id":10001,"name":"管理员"},{"id":10002,"name":"开发"},{"id":10003,"name":"测试"}]
project 存的是 对象
{"id": 11111, "name": "项目1"}
对象JSON查询
查询 project 是 项目1 的(精准查询)
- 使用箭头函数
SELECT * FROM json_test
WHERE project