2014-01-22 48 views
1

我需要在SELECT查詢中的每行之後獲取一個漸進數。從SELECT對SQL元組進行編號時獲取NULL值

即查詢結果不帶編號:

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;