|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
13.07.2011, 21:45 | #1 |
***
Участник клуба
Регистрация: 30.07.2007
Сообщений: 1,162
|
Групповое обновление. Как лучше сделать?
Имеется массив id записей таблицы tab. Нужно у этих записей обновить поле count. Пример:
id массив: 2, 12, 1, 3, 3, 3, 1 Я делаю так: Код:
|
13.07.2011, 23:03 | #2 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Формировать строку IN выбирая только не повторяющиеся и одновременно удаляя из массива выбранные. Выполить запрос и по-новой формирование строки IN из остатка массива и т.д. Для приведенного примера получится три UPDATE. Одним запросом можно в set CASE WHEN использовать, но эту строчку прийдется программно сформировать тогда. Не знаю приемлимо ли это:
Код:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
13.07.2011, 23:03 | #3 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
да... задачка...
СУБД у Вас какая? судя по кавычкам MySQL ? вариант с хранимой процедурой не рассматривали? Теоретически можно занести все ID в таблицу (или подзапрос) и обновлять Код:
_______________ Добавлено. Аватар, с CASE красивый вариант - мне понравилось! |
13.07.2011, 23:34 | #4 |
***
Участник клуба
Регистрация: 30.07.2007
Сообщений: 1,162
|
Согласен, интересная. У самого есть пару вариантов тоже, но я думаю они не оптимальные, т.к. с SQL ещё не до конца познакомился.
Да. ЯП php. Подумаю над этим Завтра (сегодня уже поздно), попробую предложенные варианты. Если у кого ещё есть идеи по поводу этого пишите. Последний раз редактировалось dr.Chas; 13.07.2011 в 23:36. |
14.07.2011, 08:17 | #5 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
то я бы рекомендовал начать с варианта, предложенного Аватар. Он, конечно, заставит программиста попотеть, но от сервера в данном случае вообще ничего не требуется (кроме поддержки CASE в операции Update, разумеется!) |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Работа с image хз как лучше сделать. | winner13 | Мультимедиа в Delphi | 3 | 25.04.2011 09:42 |
Программа с локазизацией. Как можно сделать лучше? | exploys | Общие вопросы C/C++ | 0 | 12.04.2011 17:05 |
Как лучше сделать форму редактирования таблицы ? | Allan Stark | Microsoft Office Access | 15 | 09.02.2011 22:30 |
Как сделать групповое удаление, а не по одному за щелчок. | Bushel | PHP | 6 | 22.11.2010 12:02 |
Подскажите как лучше сделать | Gendolff | БД в Delphi | 1 | 10.02.2007 08:47 |