У меня есть таблица с полем sort_id
. В этом поле есть числа от 1 до n, которые определяют порядок наборов данных. Теперь я хочу удалить некоторые элементы, а затем я хочу изменить порядок таблицы. Поэтому мне нужен запрос, который «находит» пробелы и изменяет поле sort_id
в соответствии с изменениями.Обновление ключей сортировки после удаления
Конечно, я мог бы сделать что-то вроде этого:
SELECT sort_id FROM table WHERE id = 5
Затем сохраните sort_id, а потом:
DELETE FROM table WHERE id = 5
UPDATE table SET sort_id = sort_id - 1 WHERE sort_id > {id from above}
Но я хотел бы сделать процесс переупорядочения в одном шаге.
Извините, я не упомянул, что мне нужен стандартный SQL или, по крайней мере, определенный MySQL запрос. Любые идеи? – okoman
В MySQL вы не можете делать UPDATE и SELECT одной и той же таблицы в том же запросе. –