Максимальное кол-во айдишников в WHERE IN(…)

364
11 февраля 2017, 10:05

Есть запрос, и в нем использую порядка 500 айдишников, перечисленных в IN

UPDATE `table` SET `age` = '0-18' WHERE IN(1,2,3,4,5.....500);

Запрос обрабатывает быстро, но возник вопрос, а есть ли ограничение на кол-во перечисляемых айдишников в IN?

Answer 1

Будет работать, пока не будет превышен max_allowed_packet

Answer 2

500 штук явно не с воздуха ж берутся, скорее всего их можно как-то получить по условиям, тогда запрос приобретает естественную локаничность и крысату:

update tabl SET age = '0-18' WHERE id = (SELECT id from ... WHERE ...) 

но если уж вот так руками надо указать (ну бывает - асенила) тогда создать временную табличку ttbl с одним полем id (для крысаты сделать его PK), вписать или загрузить туда ихъ, и тоже

update tabl SET age = '0-18' WHERE id = (SELECT id from ttbl)

или так

update tabl SET age = '0-18' WHERE id IN (SELECT id from ttbl)
READ ALSO
Сравнение больших массивов в PHP

Сравнение больших массивов в PHP

ПриветствуюЕсть такая задача

459
Путаются посты при добавлении wp_insert_post

Путаются посты при добавлении wp_insert_post

БредОбъясните, пожалуйста, почему так?

314
Как использовать библиотеку Google Analytics

Как использовать библиотеку Google Analytics

ЗдравствуйтеИспользую клиентскую библиотеку для Google Analytics Для авторизации использую такой код (ниже), но проблема в том что он работает только...

327