提出问题
如下图,该表中 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
,是不应该查询到的