mysql 模糊查詢表中儲存json的欄位
阿新 • • 發佈:2018-11-17
說明: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},'%')
參考連結:https://www.cnblogs.com/ooo0/p/9309277.html