如何在laravel中使用逗号分隔值的列上使用'where'
Posted
技术标签:
【中文标题】如何在laravel中使用逗号分隔值的列上使用\'where\'【英文标题】:How to use 'where' on column with comma separated values in laravel如何在laravel中使用逗号分隔值的列上使用'where' 【发布时间】:2016-02-03 06:41:47 【问题描述】:我正在使用带有 laravel 框架的 php。我想从包含用户 ID 的表中获取行。这里的问题是用户 id 是整数值,并且 column(author) 包含多个以逗号分隔的整数值。这是一个例子。
DB::table('stories')->where('author','4')->get();
作者列具有值:第 1 行:2,4,5 |第 2 行:1,3,14 |第 3 行:4,5 我会得到第 1 行和第 3 行。所以,请帮助我得到正确的行。
【问题讨论】:
【参考方案1】:你可以像 as 一样使用whereRaw
DB::table('stories')->whereRaw("find_in_set('4',author)")->get();
【讨论】:
【参考方案2】:首先使用
将您的string
转换为 array
$row = "2,4,5";
$idsArr = explode(',',$row);
DB::table('stories')->whereIn('author',$idsArr)->get();
【讨论】:
如果可以简单地使用find_in_set
,为什么要将字符串转换为数组
@uchicha 你是对的..但是不同的人有不同的头脑,不同的头脑有不同的逻辑方式...... :)以上是关于如何在laravel中使用逗号分隔值的列上使用'where'的主要内容,如果未能解决你的问题,请参考以下文章