sql >> Databáze >  >> RDS >> Mysql

Lepší způsob odstranění více řádků v databázi MySQL pomocí PHP?

Nejsem odborník, ale věřím

$idListString = implode(",",$idList);
mysql_query("DELETE FROM this_table WHERE id IN ($idListString)");

je rychlejší. Důvodem je, že to dělá pouze jeden dotaz. Na server je odesláno méně dat a všechna jsou zpracována jedním tahem, jedním příkazem.

Obecně platí, že u druhé metody, pokud máte řekněme 300 hodnot, znamená to, že provádíte 300 dalších volání funkcí, 300 komunikací se serverem atd., i když v praxi se to může lišit.

edit:Dále byste měli vždy používat správné escapování MySQL, i když si můžete být jisti, že data nejsou škodlivá. Viz http://php.net/manual/en/ function.mysql-real-escape-string.php a zvažte použití mysqli nebo PDO.



  1. Uvedeno APPL_TOP v Oracle Applications R12

  2. mohou být dočasné proměnné MySQL použity v klauzuli WHERE?

  3. Odstraňte ze dvou tabulek pomocí kruhových cizích klíčů

  4. Chyba mikroormu:ověření hesla pro uživatele postgres selhalo