Mysql несколько удалений или строк в одном выражении.Есть ли предел? - PullRequest
0 голосов
/ 04 ноября 2010

Я использую подобное утверждение с PHP / Mysql:

DELETE FROM `site1` . `users` WHERE `email` IN ('eric@me.net', 'joe@aol.com', 'bill@me.com')

У меня может быть несколько сотен или тысяч за раз, это будет проблемой для MySql? Есть ли предел для массива, используемого для функции "IN"?

спасибо

Ответы [ 3 ]

5 голосов
/ 04 ноября 2010

Согласно документации , нет конкретного ограничения на количество аргументов для IN:

"Количество значений в списке IN ограничено только max_allowed_packetзначение ".

2 голосов
/ 04 ноября 2010

Лучшая практика. Я бы пакетировал его не более чем на 100, и если они должны быть удалены сразу, вы можете заключить их в транзакцию.

1 голос
/ 28 января 2011

Я бы создал временную таблицу, содержащую значения, и ссылался бы на это из запроса.

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