為 MySQL 的查詢結果新增排名字段

2021-09-01 10:03:30 字數 1119 閱讀 6759

** 

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

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

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

如下面的**:

1set@counter=0;

2

3select@counter:=@counter+1asrank,lastname,roll_noasrollfromstudentsorderbyroll_noasc;

執行該語句的結果如下:

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

用一條sql搞定:

--也就是把臨時變數, 放在from 子句裡. 

select @counter:=@counter+1 as rank,lastname,roll_no as roll from students,(select @counter:=0) as t

order by roll_no asc;

不用臨時變數, 用表的自關聯

select 

(select count(roll_no) from students where s.roll_no <= roll_no) as rank,

s.lastname, s.roll_no as roll

from students s

order by s.roll_no asc

為 MySQL 的查詢結果新增排名字段

我正在用 mysql 客戶端的時候,突然想到如果可以給查詢結果新增排名該多好啊,然後就找到了乙個簡單的解決辦法。下面是乙個示例表的資料 然後我們要根據 roll no 字段進行排序並給出排名,我們首先必須定義乙個初始值為0的變數,然後在查詢結果中使用這個變數。如下面的 view source pri...

為 MySQL 的查詢結果新增排名字段

正在用 mysql 客戶端的時候,突然想到如果可以給查詢結果新增排名該多好啊,然後就找到了乙個簡單的解決辦法。下面是乙個示例表的資料 然後我們要根據 roll no 字段進行排序並給出排名,我們首先必須定義乙個初始值為0的變數,然後在查詢結果中使用這個變數。如下面的 1set counter 0 2...

mysql資料庫查詢如何新增排名序號

mysql中排序後根據排序的內容顯示序號,需要在子查詢中select rownum 0,只有外層的 rownum並不會起作用。select a.num,a.content,t.tagname,rownum rownum 1 as sortorder from select count as num,...