mysql中不存在類似於sql server或orcal中的rank()函式來得到排名。而在實際的工作中,常常需要將查詢後排序得到的排名給記錄下來。由於專案需要,不僅要對成績進行排名,而且需要相同成績的具有相同的排名。根據網上的提供的排名方法,進一步進行擴充,得到了下面的實現方式。
表:score,有三個字段,id,name,score
表中原始資料:
-- 順序一直在變大
@j:=@j+1 as j,
-- 只有在前後二次排序值不同時才會使用順序號
@k:=(case when @pre_score=tmp.score then @k else @j end) as rank,
@pre_score:=tmp.score as pre_score
from
(-- 成績排序
select * from score order by score desc
) tmp,
-- @k 表示最終的排名(相同值時序號相同)
-- @j 表示順序排名
-- @pre_score上一次排序值
MySQL中實現rank排名查詢
在mysql中,不存在類似於sql server或orcal等中的rank 函式來得到排名 所以我們需要手動地寫這個rank功能。sql語句中,使用 來定義乙個變數。如 abcsql語句中,使用 來給變數賦值,abc 123,則變數abc的值為123sql語句中,if a,b,c 表示,如果a條件成...
MySQL實現Rank高階排名函式
mysql中沒有rank排名函式,當我們需要查詢排名時,只能使用mysql資料庫中的基本查詢語句來查詢普通排名。儘管如此,可不要小瞧基礎而簡單的查詢語句,我們可以利用其來達到rank函式一樣的高階排名效果。在這裡我用乙個簡單例子來實現排名的查詢 首先我們先建立乙個我們需要進行高階排名查詢的playe...
MySQL中實現Rank排名高階函式
先舉例乙個 select name,time,currank currank 1 as rank from 表名,select currank 0 qorder by time1.要在mysql中宣告乙個變數,你必須在變數名之前使用 符號。from子句中的 currank 0 部分允許我們進行變數初...