2012-11-25 94 views
12

假設我有SQL查詢是這樣的:如何將ROW INDEX作爲列添加到SQL SELECT查詢中?

SELECT id, name, index(not a real column) FROM users ORDER BY rating DESC 

我想列添加到選定列,將代表記錄的索引。

例子:

id name rating 
1  a  4 
2  b  2 
3  c  8 
4  d  5 

對於這個表我想:

id name rating index 
3  c  8  1 
4  d  5  2 
1  a  4  3 
2  b  2  4 
+0

所以你想要結果表中的行號? –

+0

在您簡要描述您的要求的句子中是否缺少某些東西? 「將列添加到選定的列...」NVM我明白你的意思。你需要結果表的行索引號。 – bonCodigo

+0

記錄的索引是什麼? – sashkello

回答

14

請嘗試以下操作以獲取row_index:

set @row_num = 0; 
SELECT id,name,rating, @row_num := @row_num + 1 as row_index FROM users 
ORDER BY rating desc; 
+0

它的工作,但似乎沒有優雅的解決方案。 –

+0

你在尋找Yarin有多優雅? :)我也想知道你的意思是「在這個textarea上最少的字符」...... – bonCodigo

+0

我一直在尋找類似INDEX()函數的東西。 至於'最小'的東西,它涉及到textarea上添加註釋時的Stackoverflow驗證:P –

1

喜歡的東西 set @cnt=0; select *, @cnt:[email protected]+1 from users order by rating desc;

應該做的工作(您需要之前設置@cnt每個查詢雖然)