如何在Laravel Query Builder的where数组中实现whereIn功能?
在Laravel Query Builder的where数组中实现whereIn功能
要在传给where()方法的数组参数里实现whereIn的查询效果,只需调整条件子数组的结构,确保满足以下要求:
- 条件子数组格式为 [字段名, 'IN', 目标值数组]
- 第三个参数必须是数组类型(哪怕只有单个值)
示例代码
如果$clientId本身就是数组:
$where = [['Participants.Client_Id', 'IN', $clientId]]; DB::table('Participants')->where($where)->get();
如果$clientId可能是单个值(比如字符串或数字),为避免SQL语法错误,先转成数组:
$where = [['Participants.Client_Id', 'IN', (array)$clientId]]; DB::table('Participants')->where($where)->get();
Laravel的where()方法会自动识别IN操作符,将第三个参数作为IN子句的取值集合,底层会正确生成WHERE Participants.Client_Id IN (?, ?, ...)的SQL语句,效果和直接调用whereIn()完全一致。
内容的提问来源于stack exchange,提问作者Devck - DC
相关产品推荐
相关产品推荐

