MySQL - удалите одну строку и измените порядок остальных с правильным ID сортировки - PullRequest
7 голосов
/ 01 февраля 2012

У меня есть таблица, которая содержит несколько строк и sort_order .Мне было интересно, как я могу это сделать, поэтому, когда я удаляю строку, скажем, я удаляю выделенную строку с сортировкой порядка 7. Тогда вместо того, чтобы просто удалить 7, мне нужно изменить # 8 на # 7 .. # 9 на№ 8 .. № 10 до № 9 .. и № 11 до № 10.

enter image description here

Возможно ли что-то подобное?

Ответы [ 4 ]

13 голосов
/ 01 февраля 2012

Если вам действительно нужно изменить эти значения (sort_order все еще будет работать с пробелами), вы можете

Delete From t
Where sort_order = 7

и затем уменьшить оставшиеся записи на 1:

Update t
Set sort_order = sort_order - 1
Where sort_order > 7
1 голос
/ 02 мая 2012

Нет абсолютно никакого смысла в таком переупорядочении. Просто оставьте свой стол как есть.

Вы будете обременять свою базу данных ненужной работой без какой-либо выгоды.

1 голос
/ 01 февраля 2012
DELETE FROM table WHERE sort_order = 7;
UPDATE table SET sort_order = sort_order - 1 WHERE sort_order > 7;

Но это совсем не обязательно.

1 голос
/ 01 февраля 2012

Как это:

Update tablename 
Set sort_order = sort_order - 1 
where sort_order > 7
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...