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

如何在Laravel中使用AND逻辑的两个条件删除记录?

Laravel 多条件同时匹配删除记录方案

当然可以实现同时满足两个条件的删除操作,核心是确保你的查询条件是AND逻辑关联,而不是分开执行或用OR逻辑。下面是几种常用的实现方式:

  • 链式where条件
    直接通过多次调用where方法,Laravel会自动将这些条件用AND拼接,生成同时满足所有条件的删除SQL:

    // 替换成你的模型类、字段名和对应值
    YourModel::where('field1', $value1)
             ->where('field2', $value2)
             ->delete();
    

    对应的SQL语句类似:DELETE FROM your_table WHERE field1 = ? AND field2 = ?,只会删除同时符合两个条件的记录。

  • 数组形式的where条件
    如果需要同时指定多个条件,也可以用数组传递给单个where方法,效果和链式调用完全一致,适合条件较多时保持代码整洁:

    YourModel::where([
        ['field1', '=', $value1],
        ['field2', '=', $value2]
    ])->delete();
    
  • 带比较运算符的复杂条件
    要是你的条件不是简单的等于匹配,比如范围、模糊匹配等,同样可以用链式方式组合:

    // 示例:删除状态为禁用且创建时间超过30天的用户
    use App\Models\User;
    
    public function cleanUpInactiveUsers()
    {
        User::where('status', 0)
            ->where('created_at', '<', now()->subDays(30))
            ->delete();
    }
    

注意:如果之前出现“逐个处理条件”的问题,大概率是你误使用了orWhere(逻辑或),或者分开执行了两次delete()操作。只要确保所有条件通过where链式或数组传递,就能实现同时满足所有条件才删除的效果。

内容的提问来源于stack exchange,提问作者Oktavian Yudistira Putra

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 15:32:06