MySQL

MySQL查询某个字段包含某个值--FIND_IN_SET

2020-09-07  本文已影响0人  这真的是一个帅气的名字

情景:

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


image.png

现在想在文章列表进行筛选,根据标签筛选出对应标签的文章
但是不能用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)

image.png

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

image.png

tp5中使用

use think\Db;
$condition[] = ['','exp',Db::raw("FIND_IN_SET('2',label)")];
$condition[] = ['','exp',Db::raw("FIND_IN_SET('3',label)")];
image.png
上一篇 下一篇

猜你喜欢

热点阅读