表数据示例: +----+----------+ | id | ids | +----+----------+ | 1 | 1,2,3, | | 2 | 2,10,14, | +----+----------+ 要求:查询ids列中包含1的结果 1)用like关键字(错误) SELECT * FROM `my_test` WHERE ids LIKE '%1%'; +----+----------+ | id | ids | +----+----------+ | 1 | 1,2,3, | | 2 | 2,10,14, | +----+----------+ 2)用FIND_IN_SET函数(正确) SELECT * FROM my_test WHERE FIND_IN_SET(1, ids); +----+--------+ | id | ids | +----+--------+ | 1 | 1,2,3, | +----+--------+ 结论:用like会把所有包含1的数据查出来,包括12,13等; 但是用FIND_IN_SET不会,相当于在字段里面用逗号分隔后精确匹配,只会查询包含等于1的结果