You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Laravel同一查询中正确组合whereBetween与orWhere条件?

搞定Laravel查询条件组合的正确姿势

嘿,我来帮你理清楚这个查询条件的组合问题~你提到要结合日期范围和req_id匹配的条件,这里分几种常见场景给你对应的解决方案:

场景1:数据必须同时满足日期范围 + 指定req_id

如果你的需求是筛选出既在目标日期区间内,又匹配某个特定req_id的数据,这时候要用where(逻辑AND)而不是orWhere,代码如下:

$did = DB::table('ssrareqs')
    ->select('particular_id', 'quantity_req', 'purpose', 'date_applied','date_approved', 'quantity_issued', 'remarks', 'status_issue', 'status_req')
    ->whereBetween('date_applied', [$start_date, $end_date])
    ->where('req_id', $req_id[$i]) // 用where实现「且」的逻辑
    ->get();

场景2:数据满足任一条件即可:日期范围 OR 指定req_id

要是你需要的是「要么在日期范围内,要么匹配指定req_id」的数据,直接链式调用orWhere就可以。不过如果后续还要加其他查询条件,记得用闭包把OR条件包起来,避免逻辑混乱:

$did = DB::table('ssrareqs')
    ->select('particular_id', 'quantity_req', 'purpose', 'date_applied','date_approved', 'quantity_issued', 'remarks', 'status_issue', 'status_req')
    ->whereBetween('date_applied', [$start_date, $end_date])
    ->orWhere('req_id', $req_id[$i]) // 用orWhere实现「或」的逻辑
    ->get();

额外补充:如果req_id是多个值的数组

要是你需要匹配req_id数组里的任意一个值,同时还要满足日期范围,直接用whereIn就搞定了:

// 假设$req_id是类似[1, 3, 5]这样的数组
$did = DB::table('ssrareqs')
    ->select('particular_id', 'quantity_req', 'purpose', 'date_applied','date_approved', 'quantity_issued', 'remarks', 'status_issue', 'status_req')
    ->whereBetween('date_applied', [$start_date, $end_date])
    ->whereIn('req_id', $req_id) // 匹配数组中任意一个req_id,同时满足日期范围
    ->get();

重要提醒:混合条件时记得分组

当你同时用where和orWhere的时候,一定要注意逻辑分组。比如你想实现「日期范围 且 (req_id匹配 或 状态为已批准)」,就得用闭包把OR条件包裹起来,不然逻辑会跑偏:

$did = DB::table('ssrareqs')
    ->select('particular_id', 'quantity_req', 'purpose', 'date_applied','date_approved', 'quantity_issued', 'remarks', 'status_issue', 'status_req')
    ->whereBetween('date_applied', [$start_date, $end_date])
    ->where(function($query) use ($req_id) {
        $query->where('req_id', $req_id[$i])
              ->orWhere('status_req', 'approved');
    })
    ->get();

这样就能保证括号里的OR条件是和日期范围的AND条件组合,不会出现意料之外的查询结果~

内容的提问来源于stack exchange,提问作者R. Mseti

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 08:21:06