查询字段某一字段中包含某一ID的记录我们可以用以下的方法:
首先创建表:
CREATE TABLE users(id int(6) NOT NULL AUTO_INCREMENT,PRIMARY KEY (id),name VARCHAR(20) NOT NULL,limits VARCHAR(50) NOT NULL);
添加数据:
1、 INSERT INTO users(name, limits) VALUES('小张','1,2,12');
2、 INSERT INTO users(name, limits) VALUES('小王','11,22,32');
如何查询出limits字段中含有ID=2的记录呢,我们可以用以下的方法:
第一种方法:
SELECT * FROM users WHERE limits like "%2%";
执行后您会发现两条数据都被查询了出来,而第2条数据是我们不想要的,所以我们需要对查询进行优化,考虑所有情况:
SELECT * FROM users WHERE limits like "%,2,%," or "2,%" or "%,2" or "2";
另一种方法就是利用mysql 字符串函数 find_in_set()。
第二种方法:
SELECT * FROM users WHERE find_in_set('2', limits);
这一句即可解决。。
另需注意:mysql字符串函数 find_in_set(str1,str2)函数是返回str2中str1所在的位置索引,str2必须以”,”分割开。