![](/img/trans.png)
[英]Using algolia (php website) - Looking for the best update/delete method?
[英]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.