有个字段存了company_id 格式是 1,2,3
现在要查看company_id 为300的公司是否在此字段里
使用模糊查询 发现查出了一堆不符合条件的数据
SELECT company_id FROM message WHERE company_id LIKE "%300%";
若使用find in set 进行查询则结果符合预期
SELECT company_id FROM message WHERE FIND_IN_SET(300,company_id);
find in set() 与like的区别
find in set() 是以分隔符为一组数据进行查询的
like “%%” 则是包含查询
例如 有组为 company_id 12,22,32
使用like 查询 company id为 1 的公司 是否存在
like就会查询出来 因为他把 12,22,32 当成整体进行查询
由于12含有1 因此就会被查出来
使用find in set 则会根据 “,"划分数据
12
22
32
发现 不存在company_id为1的 所以查不出来