Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как сделать UPDATE нескольким строкам?
 
 автор: pavluxa09   (16.07.2009 в 11:39)   письмо автору
 
 

Здравствуйте. Вопрос. Как сделать UPDATE нескольким строкам, как в INSERT INFO, там после VALUE можно куча скобок делать.

Смотрите. Есть запрос:
UPDATE table SET `cash` = cash+1 WHERE `id` = 14;
UPDATE table SET `cash` = cash+2 WHERE `id` = 15;
Как их обьединить?

У вас возникает вопрос, зачем оно нужно? А вот и ответ: в цикле вращается массив $user['id'] - ID пользоватея, $user['balance'] - баланс который нужно ему вставить. С точки зрения оптимизации нельзя делать запросы в цикле. Поэтому нужна артернатива. Это все сделать одним мега крутым запросом.

Помогите пожалуйста, кто сделает хорошо получит бакс на Webmoney!

  Ответить  
 
 автор: Trianon   (16.07.2009 в 11:46)   письмо автору
 
   для: pavluxa09   (16.07.2009 в 11:39)
 

UPDATE table SET `cash` = cash+1 + (`id` = 15) WHERE `id` = 14 OR `id` = 15;

  Ответить  
 
 автор: pavluxa09   (16.07.2009 в 11:58)   письмо автору
 
   для: Trianon   (16.07.2009 в 11:46)
 

Ошибка! Сумма которую мы даём разная будет а не одинаковая. У вас вы просто ID 15 даёте на еденицу больше, а нужно чтоб можно было любое число.
А можете расписать для трёх примеров. Ну там Id 14 и 15 а чтоб ещё 16. Чтоб я знал как формировать запрос в цикле.

  Ответить  
 
 автор: ride   (16.07.2009 в 13:10)   письмо автору
 
   для: pavluxa09   (16.07.2009 в 11:58)
 

UPDATE table SET `cash` = cash+1 + (`id`-14) WHERE id in(14,15,16,17)

:)

  Ответить  
 
 автор: ride   (16.07.2009 в 13:15)   письмо автору
 
   для: pavluxa09   (16.07.2009 в 11:58)
 

или же
update table set cash=case when id=14 then 1 when id=15 then 2 end
where id in(14,15)

  Ответить  
 
 автор: Trianon   (16.07.2009 в 13:23)   письмо автору
 
   для: pavluxa09   (16.07.2009 в 11:58)
 

по уму если подходить, то нужно таблицу создать с этой зависимостью.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования