PHP / MySQL Batch Delete - PullRequest
       1

PHP / MySQL Batch Delete

3 голосов
/ 09 октября 2011

Есть ли способ пакетного удаления для MySQL при использовании PHP (mysqli)?

Со вставками вы можете сделать что-то вроде

insert into tbl (...) values (...) (...) (...) ...

есть ли эквивалент для удаления?

Ответы [ 4 ]

7 голосов
/ 09 октября 2011
delete from tbl where id IN (1,2,3)

ИЛИ

delete from tbl where id = 1 OR id = 2 OR email = 'admin@example.com'

Вы можете убедиться, что удалили нужные данные, выполнив сначала выбор ...

пс: для php,

<?
$ids = array(1,2,3);

$sql = "DELETE FROM tbl WHERE id IN (" . implode(',', $ids) . ")";
?>

или

<?
$deleteme = array("id = 1", "id = 2", "email = 'admin@example.com'");

$sql = "DELETE FROM tbl WHERE " . implode(' OR ', $deleteme);
?>
2 голосов
/ 09 октября 2011

Если я правильно понял ваш вопрос, то:

  • Это на самом деле не зависит от PHP, оно зависит только от используемого оператора SQL
  • Обычно вы удаляете строки, основываясь на условии ON WHERE X = Y. Поэтому, если вы хотите удалить несколько строк, вы просто расширили бы условие до WHERE X = Y OR X = Z или даже WHERE X IN (Y, Z, ..)
2 голосов
/ 09 октября 2011

Вы можете использовать клаузолу WHERE. Например:

DELETE FROM table WHERE Id in (0,1,...,n)
0 голосов
/ 08 декабря 2011

Использование в выражении In в операторе удаления, это один из лучших методов, и вы можете передавать тысячи идентификаторов в предложении IN.Я лично проверил 25k идентификаторов, и это сработало

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...