Укажите более одного элемента в предложении where - PullRequest
1 голос
/ 27 августа 2009

Можно ли как-нибудь запустить следующий «логический код», чтобы он действительно работал?

$sql=mysql_query("DELETE FROM users WHERE id='3,4,5,9'");

Я, в основном, хочу поставить галочку для своего пользователя на все отображаемые строки, чтобы они могли выбрать, какие из них удалить. Я просто хочу удалить более одной строки с указанным идентификатором?

Есть идеи?

Ответы [ 6 ]

13 голосов
/ 27 августа 2009

Для этого вы можете использовать оператор IN .

DELETE ... WHERE id IN (3,4,5,9)
5 голосов
/ 27 августа 2009

А как же:

$sql=mysql_query("DELETE FROM users WHERE id IN (3, 4, 5, 9)");

При условии:

  • ваши идентификаторы в БД числовые
  • вы хотите удалить пользователя 3, удалить пользователя 4, удалить пользователя 5 и удалить пользователя 9

И, конечно, если ваши идентификаторы являются строками:

$sql=mysql_query("DELETE FROM users WHERE id IN ('3', '4', '5', '9')");

Для получения дополнительной информации см .:

3 голосов
/ 27 августа 2009

Используйте предложение WHERE IN.

DELETE FROM users WHERE id IN (3, 4, 5, 9);
2 голосов
/ 27 августа 2009
$sql=mysql_query("DELETE * FROM table WHERE id IN (3,4,5,9)");
2 голосов
/ 27 августа 2009

Вы пробовали использовать IN

DELETE FROM users WHERE id IN (3,4,5,9)

Хотя в своих приложениях я никогда ничего не удаляю. Вместо этого у меня есть активный флаг, который я установил в ложь.

UPDATE users set active=0 where id in (3,4,5,9)

У всех запросов затем есть предложение where для active=1, а 1 - это значение по умолчанию для активного флага в таблице.

2 голосов
/ 27 августа 2009

Вы можете использовать in вместо =.

например.,

DELETE FROM users WHERE id IN (3,4,5,9);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...