应用场景
test数据表中有一个字段是标签 tags, 标签有多个值用逗号(,)分开,数据展示如下。
id | tags |
1 | 1,2,3,4,5 |
2 | 2,4,5 |
3 | 1,4,5 |
4 | 2,3 |
5 | 1,5 |
想要查出所有tags 包含2的数据,就要用到FIND_IN_SET了
使用方法
$tid = 2;
(1)tp5.0.17以下版本
$where[] = ['exp',"FIND_IN_SET('$tid',tags)"]; $list = Test::where($where)->select();
(2)tp5.0.17以上版本
$where[] = ['exp',Db::raw("FIND_IN_SET('$tid',tags)")]; $list = Test::where($where)->select();
(3)tp5.1
$where[] = ['','exp',Db::raw("FIND_IN_SET('$tid',tags)")]; $list = Test::where($where)->select();