提出问题
如下图,该表中 likes 字段的值,是由 , 分割的多个 id:
查询 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,是不应该查询到的
