







|
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: vi.k - 01/10/2002 - 09:43:33
Subject:Помогите правильно сделать
-----------------
Немного извратно, но для дела пойдёт.
Пример:
select * from test
id | seq
7 | 1
8 | 2
1. Через multi-table update.
Это вряд ли пойдёт. Так как появилось недавно (в 4.0.2), в мануале ещё не описано и доверять пока этому не стоило бы.
Зато надо знать только идентификаторы. А значит не страшно ежели несколько человек попытаются обновить эти записи одновременно.
UPDATE test t1, test t2
SET t1.seq=((@a:=t1.seq)*0+t2.seq), t2.seq=@a
WHERE t1.id=7 AND t2.id=8;
Про ((@a:=t1.seq)*0 - это, как говорит walrus, обработка напильником :-)
2. Обработка топором наверное
Надо знать помимо идентификаторов ещё и seq.
Хотя судя по заданию - они известны :-)
UPDATE test
SET seq=IF(id=7,2,1)
WHERE id=7 OR id=8;
[Это сообщение - спам!]
Последние сообщения из форума
Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
4927
|
|