【MySQL】FIND_IN_SET函数

当我们数据库中某个字段使用 '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');

这两条记录

猿教程
请先登录后发表评论
  • 最新评论
  • 总共0条评论