Я пытаюсь создать rownum для запроса mysql. Это мой код.Ошибка первой строки с @rownum mysql
select @rownum:[email protected]+1 rowno, (`plgap_nos`.`no_id` - 1) AS `no_id`
from `plgap_nos`,
(SELECT @rownum:=0) r
limit 0, 10
Пока все работает нормально, ROWNUM первых строк обуви 1621, а не 0.
Пробовал с кодом различным, как показано ниже. все еще такая же ошибка сохраняется.
select COALESCE(@rownum:[email protected]+1,0) rank,
(`cnxnifty_plgap_nos`.`no_id` - 1) AS `no_id`
from `money_database`.`cnxnifty_plgap_nos`,
(SELECT @rownum:=0) r
limit 0, 10
Похоже, что я совершаю какую-то глупую ошибку, которую я не могу понять. Может кто-нибудь помочь.
Дополнительное info- это как looks- данные
Ранг no_id
тысяча шестьсот двадцать-один 444 7 +47819055319431365588888
Вам нужно добавить предложение ORDER BY в ваш запрос, иначе порядок строк и, следовательно, значения '@ rownum' будут произвольными. –
@GiorgosBetsos - см. Снимок данных, который я добавил в главном сообщении. Хотя каждый rownum и no_id находятся в одном порядке, rowno для 1-й записи - 1621. –
Это потому, что первая строка с 'no_id = 0' обрабатывается * не *. Вы ** должны ** добавить 'ORDER BY no_id', если вам нужна эта строка, чтобы иметь' @ row_num = 1'. –