powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Сложная сортировка (проектирование) теория
3 сообщений из 28, страница 2 из 2
Сложная сортировка (проектирование) теория
    #37482740
Ejhi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoftEjhimiksoft,

Это перемещение снизу вверх.

А сверху вниз?
Код: plaintext
1.
UPDATE mytable SET order = CASE WHEN order >  45  THEN order -  1  ELSE  47  END
WHERE user =  44  AND order >=  45  AND order <= 47 


Это понятно. Интересно было бы увидеть универсальный запрос. Для обоих направлений.
...
Рейтинг: 0 / 0
Сложная сортировка (проектирование) теория
    #37482786
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EjhiЭто понятно. Интересно было бы увидеть универсальный запрос. Для обоих направлений. Ну чеснэ слово, як диты!

Варианты:
Код: plaintext
1.
2.
UPDATE mytable
SET order = CASE WHEN old_order < new_order THEN CASE WHEN order > old_order THEN order -  1  ELSE new_order END ELSE CASE WHEN order < old_order THEN order +  1  ELSE new_order
WHERE user =  44  AND order >= LEAST(new_order, old_order) AND order <= GREATEST(new_order, old_order)
Код: plaintext
1.
2.
UPDATE mytable
SET order = CASE WHEN order != old_order THEN order + SIGN(old_order - new_order) ELSE new_order END
WHERE user =  44  AND order >= LEAST(new_order, old_order) AND order <= GREATEST(new_order, old_order)
В мелочах мог наврать, не проверял. Но смысл должен быть ясен.
...
Рейтинг: 0 / 0
Сложная сортировка (проектирование) теория
    #37482792
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в первом варианте забыл закрыть два CASE-а END-ами.
...
Рейтинг: 0 / 0
3 сообщений из 28, страница 2 из 2
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Сложная сортировка (проектирование) теория
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]