為 MySQL 的查詢結果新增排名欄位

瓜瓜東西發表於2015-04-03

我正在用 MySQL 客戶端的時候,突然想到如果可以給查詢結果新增排名該多好啊,然後就找到了一個簡單的解決辦法。

下面是一個示例表的資料:

然後我們要根據 Roll_No 欄位進行排序並給出排名,我們首先必須定義一個初始值為0的變數,然後在查詢結果中使用這個變數。

如下面的程式碼:

?
1
2
3
SET@counter=0;
 
SELECT@counter:=@counter+1 ASRank,LastName,Roll_no asRoll FROMStudents ORDERBY Roll_no ASC;

執行該語句的結果如下:

更多關於自定義變數的內容請看 MySQL 的文件

二 另外一個方法:

select id, @count:=@count+1 as rank from blog, (select @count:=0) c order by id 

相關文章