簡體   English   中英

使用數組進行MySQL / PHP批量刪除:最佳方法?

[英]MySQL/PHP mass delete using array: Best method?

我需要通過PHP(使用PDO)從MySQL表中進行批量刪除。 該表有一個名為“ id”的字段,所有要刪除的id都存儲在一個數組中。 可能有5行要從表中刪除,或者可能有5000+。

我立即想到的是使用foreach並遍歷數組,一次刪除一個。 但是,有些事情告訴我,如果數組中有很多元素,可能不是一個很好的方法。

有什么想法可以進行這種刪除嗎?

使用以下查詢將table_name替換為表名。 $listofIdsToDelete是通過分解id數組獲得的逗號分隔字符串

$query = "DELETE FROM `table_name` WHERE id IN ($listofIdsToDelete)";

編輯:

如果您准備,您將獲得更好的性能:

$pQuery = "DELETE FROM table_name WHERE id = ?" 

並綁定循環中的每個id項目並執行。

感謝UselessIntern進行了下面的更正,並提出了在評論中包含此評論的建議

使用WHERE IN

$ids = array(1,2,3,5,6,7);
$db->exec('DELETE from table WHERE id IN ?', [implode(',' $ids)]);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM