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

如何使用Query Builder批量删除?无需foreach与Eloquent(基于ID数组)

当然可行!这是高效批量删除的推荐做法

完全不需要使用foreach循环或者Eloquent模型实例,通过Query Builder就能实现单次查询批量删除指定ID的数据,还能避免多次数据库请求的开销。

不过你给出的代码存在两个小问题:

  • 数组定义错误:同一个数组里重复使用"id"键,最终只会保留最后一个值,而且语法也有问题(缺少闭合的]和;)
  • delete()方法的用法不对:直接传数组给delete()并不能实现批量删除,这个方法如果传参数的话,仅支持单个主键值

正确的实现代码:

首先整理好要删除的ID列表(直接存ID值即可,不需要嵌套数组):

$ids = [8, 9];

然后使用whereIn()配合delete(),生成单次DELETE查询:

DB::table('table_name')->whereIn('id', $ids)->delete();

这条代码会生成并执行如下SQL语句:

DELETE FROM `table_name` WHERE `id` IN (8, 9)

这样就完美满足你的需求:没有循环、不用Eloquent,仅一次数据库查询就完成批量删除操作。

内容的提问来源于stack exchange,提问作者mohsin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:02:35