Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Помогите правильно сделать (Andrey) 27/09/2002 - 14:14:43
      Re: Помогите правильно сделать (Фдуч) 27/09/2002 - 15:44:46
      Re: Помогите правильно сделать (Andrey) 27/09/2002 - 15:53:30
      Re: Помогите правильно сделать (Andrey) 27/09/2002 - 16:03:32
      Re: Помогите правильно сделать (Фдуч) 27/09/2002 - 16:07:55
      Re: Помогите правильно сделать (Фдуч) 27/09/2002 - 16:10:40
      Re: Помогите правильно сделать (andrey) 27/09/2002 - 16:34:52
      Re: Помогите правильно сделать (vi.k) 01/10/2002 - 09:43:33
      Re: Помогите правильно сделать (Andrey) 03/10/2002 - 13:39:44

> Original message text:
> From: Andrey - 27/09/2002 - 14:14:43
> Subject:Помогите правильно сделать
> -----------------
> Есть таблица sections в ней поле sequence, указывающее последовательность раздела при выводе списка разделов.
> На форме таблично отображаются разделы и кнопки чтобы менять порядок. Т.е. в итоге мы должны в двух записях поменять местами значения sequence.
> Как наиболее эффективно и красиво реализовать подобный запрос?
>


From: Andrey - 03/10/2002 - 13:39:44
Subject:Помогите правильно сделать
-----------------
>>UPDATE test
>>SET seq=IF(id=7,2,1)
>>WHERE id=7 OR id=8;
Но этот запрос все равно одну запись обновит, вторую надо другим обрабатывать...

Я сделал конечно через попу - временно пока.

вначале известен только id секции, которую надо вверх двигать.
Выбираем 1-м запросом seq этой секции, вычисляем ее будующий seq_new=seq-1
Проверяем seq_new на >0
2-й запрос - получаем id секции с seq_new
3-й и 4-й запросы update обоих известных id с целью обмена у них значений seq.

== корявость какая, помогите оптимизировать :)) может где запрос более хитрый поставить. Я думаю 3-й и 4-й можно объеденить в 1 запрос. Да и 1 и 2-й вроде тоже можно.


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
4927



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |