我现在有一张表,某个字段是json类型,存储的是一个列表,
我想通过 ** in 这个字段的方式查询数据,有没有啥方法?
见下图!
使用JSON_CONTAINS试试,应该这些都可以,初步测试性能应该是从快到慢,JSON_CONTAINS专门处理json应该快一些,然后INSTR类似于第三种模糊查询,但是通常比模糊查询快,模糊查询是最慢的
SELECT * from b WHERE JSON_CONTAINS(b.test, '4');
SELECT * from b WHERE INSTR(b.test,'4') >0;
SELECT * from b WHERE b.test like '%4%';
CREATE TABLE rules_json(
id INT PRIMARY KEY AUTO_INCREMENT,
sys_name VARCHAR(16) NOT NULL unique,
rules JSON,
create_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);