美文网首页MySQL
MySQL查询某个字段包含某个值--FIND_IN_SET

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

作者: 这真的是一个帅气的名字 | 来源:发表于2020-09-07 13:45 被阅读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

相关文章

网友评论

    本文标题:MySQL查询某个字段包含某个值--FIND_IN_SET

    本文链接:https://www.haomeiwen.com/subject/qknkektx.html