我需要通过 PHP(使用 PDO)从 MySQL 表中进行批量删除。该表有一个名为“id”的字段,所有要删除的 id 都存储在一个数组中。可能有 5 行要从表中删除,也可能有 5000 多行。
我的直接想法是使用 foreach 并遍历数组,一次删除一个。然而,有些事情告诉我,如果数组中有很多元素,这可能不是一个很好的方法。
对执行此类删除的最佳方法有什么想法吗?
最佳答案
使用以下查询将 table_name
替换为表的名称。 $listofIdsToDelete
是ids数组分解得到的逗号分隔字符串
$query = "DELETE FROM `table_name` WHERE id IN ($listofIdsToDelete)";
编辑:
如果你做好准备,你会获得更好的表现:
$pQuery = "DELETE FROM table_name WHERE id = ?"
并在循环中绑定(bind)每个id项并执行。
感谢 UselessIntern 对下面提到的更正以及在答案中包含此评论的建议
关于php - MySQL/PHP 批量删除使用数组 : Best method?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24208134/