gpt4 book ai didi

php - 如何在 Laravel 中使用两个 WhereIn

转载 作者:行者123 更新时间:2023-11-29 06:16:47 29 4
gpt4 key购买 nike

我有一个简单的查询,其中 $clubs 和 $user_ids 是数组。我想在同一查询中使用两个 WhereIn。例如 $clubs = array(1,2,3) 和 $user_id = array(25,30,40)。并且在数据库中有一个条目,因为这个 user_id = 25 和相应的 club_id = 1。我想从查询结果中列出 user_id = 25。

$query = \DB::table('users_clubs')          
->WhereIn('user_id', $user_ids)
->WhereIn('club_id',$clubs)
->lists('user_id');

最佳答案

不知何故这是核心中whereIn的代码

public function whereIn($column, $values, $boolean = 'and', $not = false)
{
$type = $not ? 'NotIn' : 'In';

// ... irrelevant code omitted ...

$this->wheres[] = compact('type', 'column', 'values', 'boolean');

$this->addBinding($values, 'where');

return $this;
}

这似乎不可能直接实现,但如果您能以某种方式覆盖它,它可能会有所帮助。

另一种方法是使用 advance where

DB::table('users_clubs')
->Where(function($query)
{
foreach( $user_ids as $user_id ){
$query->where('user_id', '=', $user_id);
}

})
->Where(function($query)
{
foreach( $clubs as $club){
$query->where('club_id', '=', $club);
}
})
->get();

没有测试它,但似乎它可以通过一些修改工作。

关于php - 如何在 Laravel 中使用两个 WhereIn,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35425019/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com