mysql-逗号分割的字符串查询(find_in_set) 作者:马育民 • 2021-10-09 20:56 • 阅读:10297 # 提出问题 如下图,该表中 `likes` 字段的值,是由 `,` 分割的多个 `id`: [![](https://www.malaoshi.top/upload/pic/mysql/QQ20211009204709.png)](https://www.malaoshi.top/upload/pic/mysql/QQ20211009204709.png) 查询 `likes` 字段中,含有 `2` 的记录 ### 解决 ``` select * from student where FIND_IN_SET('2',likes) ``` # find_in_set 作用 如下面sql,返回的是 `2` 在 `1,2,3,4,5` 中第一次出现的位置,从 `1` 开始 ``` select FIND_IN_SET('2','1,2,3,4,5') ``` ### 与 like 相比 比like更精准,如下: ``` select FIND_IN_SET('a','aa,b,c') ``` 结果返回 `0` 使用 `like` ,如下: ``` select 'aa,b,c' like '%a%' ``` 返回结果是 `1` ,查询到了 `aa`,是不应该查询到的 原文出处:http://malaoshi.top/show_1IX20mbY81rb.html