Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使用';其中';在laravel中具有逗号分隔值的列上_Php_Mysql_Regex_Laravel - Fatal编程技术网

Php 如何使用';其中';在laravel中具有逗号分隔值的列上

Php 如何使用';其中';在laravel中具有逗号分隔值的列上,php,mysql,regex,laravel,Php,Mysql,Regex,Laravel,我正在使用带有laravel框架的php。我想从包含用户id的表中获取行。这里的问题是,用户id是整数值,列(作者)包含多个逗号分隔的整数值。下面是一个例子 DB::table('stories')->where('author','4')->get(); 作者列有值:行1:2,4,5 |行2:1,3,14 |行3:4,5 我会得到第一排和第三排。所以,请帮我找到正确的行。您可以使用whereRaw如 DB::table('stories')->whereRaw("find_

我正在使用带有laravel框架的php。我想从包含用户id的表中获取行。这里的问题是,用户id是整数值,列(作者)包含多个逗号分隔的整数值。下面是一个例子

DB::table('stories')->where('author','4')->get();
作者列有值:行1:2,4,5 |行2:1,3,14 |行3:4,5
我会得到第一排和第三排。所以,请帮我找到正确的行。

您可以使用
whereRaw

DB::table('stories')->whereRaw("find_in_set('4',author)")->get();

首先使用将
字符串
转换为
数组

$row = "2,4,5";
$idsArr = explode(',',$row);  
DB::table('stories')->whereIn('author',$idsArr)->get();

如果你能简单地使用
find_in_set
@uchicha,为什么要将字符串转换成数组呢?你是对的。但是不同的人有不同的思维,不同的思维有不同的逻辑方式……)