当我们数据库中某个字段使用 'aa','bb','cc' 这种逗号分隔的字符串存储形式时,想针对查询出字符串中是否存在某一个对应字符的时候较为麻烦。
假如我们有如下数据:
INSERT INTO `test` VALUES (1, 'name', 'aa,dd,jj'); INSERT INTO `test` VALUES (2, 'name2', 'bb,xx,aa'); INSERT INTO `test` VALUES (3, 'name3', 'cc,ss,zz');
起初理所当然想的是这样处理:
select id, list, name from `test` where 'aa' IN (`list`);
结果发现啥都查不到。
接着我们试一下FIND_IN_SET函数
sql = select * from `test` where FIND_IN_SET('aa',`list`);
则会发现查询出了
INSERT INTO `test` VALUES (1, 'name', 'aa,dd,jj'); INSERT INTO `test` VALUES (2, 'name2', 'bb,xx,aa');
这两条记录
本文为翻滚的胖子原创文章,转载无需和我联系,但请注明来自猿教程iskeys.com