Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.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 larvel:带IN()函数的参数化查询只返回匹配项中的第一个_Php_Mysql_Laravel 4 - Fatal编程技术网

Php larvel:带IN()函数的参数化查询只返回匹配项中的第一个

Php larvel:带IN()函数的参数化查询只返回匹配项中的第一个,php,mysql,laravel-4,Php,Mysql,Laravel 4,我正在运行laravel数据库查询: $relatedUsers = DB::select("Select Distinct user_id FROM customerLinks WHERE customer_id IN (?) ", array($currentUserCustomerLinks_csv) ); 变量$currentUserCustomerLinks\u csv包含我要查找的特定客户ID的csv字符串 当我在laravel中运行此查询时,对于与$currentUserCus

我正在运行laravel数据库查询:

 $relatedUsers = DB::select("Select Distinct user_id FROM customerLinks WHERE customer_id IN (?) ", array($currentUserCustomerLinks_csv) );
变量
$currentUserCustomerLinks\u csv
包含我要查找的特定客户ID的csv字符串

当我在laravel中运行此查询时,对于与
$currentUserCustomerLinks\u csv
字符串中的第一个值匹配的记录,只返回
用户id
s。csv中的所有其他值都将被忽略

当我直接在mysql数据库中运行相同的查询时,我会得到完整的ID列表

in()
函数中使用时,将csv字符串传递到数据库外观是否有问题?我在文档中没有看到任何正确执行类似查询的示例

变量
$currentUserCustomerLinks\u csv
包含我要查找的特定
客户id
的csv字符串

在中使用
将不会在
csv
输入上给出正确的结果。
FIND_IN_SET
可用于此类输入值。
返回的任何正
int
表示找到了匹配项

示例

mysql> select FIND_IN_SET( 'in', 'Rav,in,der' ) found_indx_1
    ->      , FIND_IN_SET( 'no', 'Rav,in,der' ) found_indx_2;
+--------------+--------------+
| found_indx_1 | found_indx_2 |
+--------------+--------------+
|            2 |            0 |
+--------------+--------------+
$sql = "select distinct user_id from customerLinks 
         where FIND_IN_SET ( customer_id, ? ) > 0";  
$relatedUsers = DB::select( $sql, array( $currentUserCustomerLinks_csv ) );
更改部分代码,如下所示

mysql> select FIND_IN_SET( 'in', 'Rav,in,der' ) found_indx_1
    ->      , FIND_IN_SET( 'no', 'Rav,in,der' ) found_indx_2;
+--------------+--------------+
| found_indx_1 | found_indx_2 |
+--------------+--------------+
|            2 |            0 |
+--------------+--------------+
$sql = "select distinct user_id from customerLinks 
         where FIND_IN_SET ( customer_id, ? ) > 0";  
$relatedUsers = DB::select( $sql, array( $currentUserCustomerLinks_csv ) );
请参阅

mysql> select FIND_IN_SET( 'in', 'Rav,in,der' ) found_indx_1
    ->      , FIND_IN_SET( 'no', 'Rav,in,der' ) found_indx_2;
+--------------+--------------+
| found_indx_1 | found_indx_2 |
+--------------+--------------+
|            2 |            0 |
+--------------+--------------+
$sql = "select distinct user_id from customerLinks 
         where FIND_IN_SET ( customer_id, ? ) > 0";  
$relatedUsers = DB::select( $sql, array( $currentUserCustomerLinks_csv ) );
    • 返回第一个参数在第二个参数中的索引位置 论据

太好了,谢谢您的帮助和文档参考。我不知道FIND_IN_SET函数。