如何在 Laravel 查询生成器上最小化 "where()"。如果所有 table 列都是相同的值

How to minimize "where()" on Laravel query builder. If all table columns are all the same values

有没有办法尽量减少对 laravel 查询生成器调用 ->where()?

样本Table:

name item1 item2 item 3
David 0 0 0
David 1 1 2
David 1 2 2

我想删除所有 table 列都包含 0 值的特定记录,而不删除其他记录。

我的查询是这样的。

DB::table('users')->where('name', 'David')
                  ->where('item1', 0)
                  ->where('item2', 0)
                  ->where('item3', 0)
                  ->delete();

有没有办法尽量减少调用->where()?就像在 whereIn('columns',[1,2,3,4]) 中一样,但在列中。

将条件数组传递给 where 函数。数组的每个元素都应该是包含通常传递给 where 方法的三个参数的数组:

$conditions=[
  ['name','=', 'David'],
  ['item1','=',0],
  ['item2','=', 0],
  ['item3','=', 0],
]
DB::table('users')->where($conditions)->delete();

参考:https://laravel.com/docs/8.x/queries#where-clauses