情景:
文章中有标签字段(label),存的是标签ID字符串。

现在想在文章列表进行筛选,根据标签筛选出对应标签的文章
但是不能用like。SO,FIND_IN_SET函数就大显身手了
FIND_IN_SET
FIND_IN_SET(str,strlist)
str
要查询的字符串
strlist
字段名 参数以”,”分隔 如 (1,2,6,8,10,22)
查询字段(strlist)中包含(str)的结果,返回结果为null或记录
代码实现
倘若想搜索标签ID为2的文章:
SELECT id,label FROM dk_info where FIND_IN_SET ('2',label)

倘若想搜索标签ID为3的文章:
SELECT id,label FROM dk_info where FIND_IN_SET ('3',label)

tp5中使用
use think\Db;
$condition[] = ['','exp',Db::raw("FIND_IN_SET('2',label)")];
$condition[] = ['','exp',Db::raw("FIND_IN_SET('3',label)")];

网友评论