2012-11-26 155 views
24

這裏是我的MySQL查詢選擇在MySQL累加計

select name from table; 

我想選擇沿側name.How增量計數器做到這一點。 所以預計產量將

Jay 1 
roy 2 
ravi 3 
ram 4 

回答

64
select name, 
     @rownum := @rownum + 1 as row_number 
from your_table 
cross join (select @rownum := 0) r 
order by name 

這一部分:

cross join (select @rownum := 0) r 

能夠初始化的變量,而不需要一個單獨的查詢。因此,第一個查詢也可以分解爲如下兩個查詢:

set @rownum := 0; 

select name, 
     @rownum := @rownum + 1 as row_number 
from your_table 
order by name; 

例如在存儲過程中使用時。

+2

正如Fabio Reche試圖說的那樣,我們需要在rownum + 1前寫一個'@'......是不是假設是@rownum:= @rownum + 1? – ghiscoding

+0

非常感謝,'CROSS JOIN'+1,當我需要group by clausule(map/reduce)時解決了另一個問題 –

+0

子請求用於初始化@rownum。 – Genjo