2010-03-27 2 views
0

У меня есть стол со столбцом «SortID», который пронумерован с использованием последовательных номеров. Всякий раз, когда строка удаляется, она оставляет пробел. Есть ли способ использовать чистый SQL для обновления строк с их номером строки? Что-то вроде этого:Как установить значение столбца счетчика в MySQL?

UPDATE tbl SET SortID={rowindex} ORDER BY SortID 

(Я понимаю, что это не действует SQL, поэтому я прошу помощи)

Это должно установить первую строку # 1, второй ряд на # 2 ... и т. д. Возможно ли это использование SQL? Пожалуйста, простите плохо сформулированный вопрос, я не уверен, что лучший способ задать это. :)

ответ

0

Вы можете использовать пользовательский переменный MySQL

SET @pos=0; 
SELECT @pos:[email protected]+1, * FROM tbl ORDER BY SortID; 
1

У вас его нет в продаже? Уровень представления используется для нумерации большей части времени.

+0

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

+0

@Jon, но всякий раз, когда строка удаляется, этот «пробел» не влияет на порядок сортировки. –

+0

Не обязательно при удалении, но на вставках это влияет на порядок. Я обычно подсчитываю количество строк на 2, тогда я могу вставить новую строку посередине и обновить sortID в той же транзакции. –

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