说明:mysql 5.7 及以上版本
对操作记录表格中操作对象进行模糊查询
1.创建带有 json字段的表
-- 创建表 CREATE TABLE opt_record(id INT PRIMARY KEY, opt_username VARCHAR(20) , modify_text longtext COMMENT '操作内容');
2.插入数据
-- 插入含有json数组的记录 INSERT INTO opt_record(id,opt_username,modify_text ) VALUES( 1, 'admin', JSON_ARRAY(1, "course", NULL, TRUE, CURTIME())); -- 插入含有json对象的记录 INSERT INTO opt_record(id,opt_username,modify_text) VALUES( 2, 'admin', JSON_OBJECT("course", "维修保养课程", "currentTime", now())); INSERT INTO opt_record(id,opt_username,modify_text) VALUES( 3, 'admin', '{"course":"数据结构课程", "currentTime":"2018-010-1 14:01:00"}');
3.查询数据
-- 查询记录内的值 SELECT id,opt_username,JSON_EXTRACT(modify_text,'$.name') FROM opt_record; SELECT id,opt_username,modify_text->'$.name' FROM opt_record; -- 查询key SELECT id,opt_username,json_keys(modify_text) FROM opt_record
4.对操作记录进行模糊查询
SELECT id,opt_username,modify_text FROM opt_record WHERE JSON_EXTRACT(opt_record.modify_text,'$.name') LIKE CONCAT('%',#{modify_text},'%')