







|
MySQL.RU - Webboard
Вернуться
limit for each where in (Серж) 18/08/2011 - 16:30:10
From: Серж - 18/08/2011 - 16:30:10
Subject:limit for each where in
-----------------
UPDATE `list` SET `platno` = 0 WHERE `user_id` IN (6683,5789,6442,7446,2884,8467,6154,12011,99,6393,5801) AND `pay` = 0 AND `show` = 1 AND `delete` = 0 ORDER BY `dat_in` DESC
Чтобы не шлепать запросы в цикл решил объединить их в один запрос. но есть проблема, нужно изменения произвести только первым трем записям для user_id. Если тут добавить 'limit 3' то изменения будут происходить всего для трех первых записей.
Так как IN массив более 600 записей (и увличивается) вариант через цикл отпадает.
в данный момент у меня куча таких запросов
Как можно это объединить в один запрос?
UPDATE `list` SET `platno` = 3 WHERE `user_id` = 5789 AND `pay` = 0 AND `show` = 1 AND `delete` = 0 ORDER BY `dat_in` DESC LIMIT 3
UPDATE `list` SET `platno` = 3 WHERE `user_id` = 6442 AND `pay` = 0 AND `show` = 1 AND `delete` = 0 ORDER BY `dat_in` DESC LIMIT 3
UPDATE `list` SET `platno` = 3 WHERE `user_id` = 7446 AND `pay` = 0 AND `show` = 1 AND `delete` = 0 ORDER BY `dat_in` DESC LIMIT 3
UPDATE `list` SET `platno` = 3 WHERE `user_id` = 2884 AND `pay` = 0 AND `show` = 1 AND `delete` = 0 ORDER BY `dat_in` DESC LIMIT 3
UPDATE `list` SET `platno` = 3 WHERE `user_id` = 8467 AND `pay` = 0 AND `show` = 1 AND `delete` = 0 ORDER BY `dat_in` DESC LIMIT 3
UPDATE `list` SET `platno` = 3 WHERE `user_id` = 6154 AND `pay` = 0 AND `show` = 1 AND `delete` = 0 ORDER BY `dat_in` DESC LIMIT 3
UPDATE `list` SET `platno` = 3 WHERE `user_id` = 12011 AND `pay` = 0 AND `show` = 1 AND `delete` = 0 ORDER BY `dat_in` DESC LIMIT 3
[Это сообщение - спам!]
Последние сообщения из форума
Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
39999
|
|