Вставьте rownums в таблицу MySQL через запрос или скрипт - PullRequest
0 голосов
/ 11 октября 2009

У меня есть таблица, которая имеет 5 полей и в общей сложности 400 записей. Я добавил новое поле, которое я назвал «порядок», которое, как следует из названия, должно поддерживать порядок в записях.

Поскольку я добавил это после того, как записи были вставлены, мне стало интересно, есть ли способ заполнить это поле текущим порядком записей, используя что-то вроде rownum через SQL-запрос, или мне нужно использовать PHP-скрипт для сделать вставку?

PS: я попробовал поискать в Google на rownum и не нашел ничего полезного: (

Ответы [ 2 ]

1 голос
/ 11 октября 2009

Я не думаю, что это возможно в SQL, но вы можете использовать свой первичный ключ в качестве начального порядка. В конце концов, по умолчанию строки все равно сортируются на основе этого.

UPDATE table SET order = id;
0 голосов
/ 11 октября 2009

ROWNUM - это специальный синтаксис Oracle. MySQL не имеет функции ранжирования - самое близкое, что вы можете получить, это использовать:

SELECT t.*, 
       @rownum := @rownum+1 'rownum'
  FROM TABLE t, (SELECT @rownum := 0) r

... но это будет только нумеровать строки - оно не будет сбрасываться при переходе через группу, вам придется запрашивать группу за раз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...