2016-07-29 5 views
-1

У меня есть таблица, в которой есть столбец с номерами в последовательности, но для некоторых чисел они могут быть группами с несколькими одинаковыми номерами. Затем, когда пользователь удаляет группу, может быть пробел в числах.Номера столбцов Resequence в MySQL

Что я хочу сделать, это переупорядочить этот столбец так, чтобы он начинался с 1, а затем переходил к последнему столбцу. Так, например, столбец таблицы с именем Item может выглядеть следующим образом:

1 
1 
2 
3 
5 
5 
7 
8 
8 

, и я хочу, чтобы преобразовать это:

1 
1 
2 
3 
4 
4 
5 
6 
6 

Есть ли способ сделать это в MySQL?

+6

Это не похоже, как у хороший дизайн. Для всего одного удаления вам может потребоваться обновить всю таблицу. Чего вы на самом деле пытаетесь достичь? –

+0

Помните, что БД не обязательно быть/что/читаем человеком, и программа не заботится о том, имеет ли она 4 или 5. – amflare

+0

Да, я бы обновил таблицу при каждом удалении. Это таблица с именем Scope, где каждая область (какой-то текст, введенный) может относиться к одному и тому же элементу или другому элементу. – peteswanson12

ответ

-1

Я бы не поощрять, чтобы сделать это, но вы можете повторно номер ваши значения после каждого обновления

set @cnt = 0; 
update test t set [email protected]:[email protected]+1; 

Update: это увеличит поле номер один

+0

У ОП есть обманы в своих данных, которые это уничтожит. Потери данных. – ceejayoz

+0

Это правда, я только что заметил обманов. Более сложный подход необходим, например, хранимая процедура –

Смежные вопросы