2014-01-22 2 views
1

Мне нужно получить прогрессивное число в каждой строке из моего запроса SELECT.Значение Gettin NULL при нумерации SQL-кортежей из SELECT

т.е. Результат запроса без нумерации:

user_id 
paola 
Carla 
Marta 

, что я хочу

number user_id 
1  paola 
2  Carla 
3  Marta 

Я знаю, что эта проблема очень похожа на ту, в

MySQL - Get row number on select

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

Знаете ли вы, почему? Я сделал что-то не так в переменной экземпляре?

код я использую следующее:

set @x=0; 

SELECT @x:[email protected] + 1 AS row_index, user_id FROM TABLE ORDER BY user_id 

ответ

0

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

Кстати, они могут быть объединены в одно заявление:

SELECT @x:[email protected] + 1 AS row_index, user_id 
FROM TABLE cross join 
    (select @x := 0) const 
ORDER BY user_id; 

То есть, select фактически может инициализировать переменную.

0

попробовать это

SELECT @x:[email protected] + 1 AS row_index, user_id FROM 
     (SELECT row_index , user_id from TABLE ORDER BY user_id) t1 , 
     (SELECT @x:=0) t2;