亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

MYSQL實現(xiàn)排名及查詢指定用戶排名功能(并列排名功能)實例代碼

 更新時間:2018年10月13日 17:07:03   作者:kwin  
這篇文章主要給大家介紹了關于MYSQL實現(xiàn)排名及查詢指定用戶排名功能(并列排名功能)的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起看看吧

前言

本文主要介紹了關于MYSQL實現(xiàn)排名及查詢指定用戶排名功能(并列排名功能)的相關內容,分享出來供大家參考學習,下面話不多說了,來一起看看詳細的介紹吧

表結構:

CREATE TABLE test.testsort (
 
id int(11) NOT NULL AUTO_INCREMENT,
 
uid int(11) DEFAULT 0 COMMENT '用戶id',
 
score decimal(10, 2) DEFAULT 0.00 COMMENT '分數(shù)',
 
PRIMARY KEY (id)
 
)
 
ENGINE = INNODB
 
AUTO_INCREMENT = 1
 
CHARACTER SET utf8
 
COLLATE utf8_general_ci
 
COMMENT = '測試排序'
 
ROW_FORMAT = DYNAMIC;

思路:可以先排序,再對結果進行編號;也可以先查詢結果,再排序編號。

說明:

@rownum := @rownum + 1 中 := 是賦值的作用,這句話的意思是先執(zhí)行@rownum + 1,然后把值賦給@rownum;

(SELECT @rownum := 0) r 這句話的意思是設置rownum字段的初始值為0,即編號從1開始。

實現(xiàn)排名:

方法一:

SELECT t.*, @rownum := @rownum + 1 AS rownum
 
FROM (SELECT @rownum := 0) r, (SELECT * FROM testsort ORDER BY score DESC) AS t;

方法二:

SELECT t.*, @rownum := @rownum + 1 AS rownum
 
FROM (SELECT @rownum := 0) r, testsort AS t
 
ORDER BY t.score DESC;

結果:

 

查看指定用戶排名:

方法一:

SELECT b.* FROM
 
(
 
SELECT t.*, @rownum := @rownum + 1 AS rownum
 
FROM (SELECT @rownum := 0) r,
 
(SELECT * FROM testsort ORDER BY score DESC) AS t
 
) AS b WHERE b.uid = 222;

方法二:

SELECT b.* from
 
(
 
SELECT t.*, @rownum := @rownum + 1 AS rownum
 
FROM (SELECT @rownum := 0) r, testsort AS t
 
ORDER BY t.score DESC
 
) as b where b.uid = 222;

結果:

實現(xiàn)并列排名(相同分數(shù)排名相同):

SELECT
 
obj.uid,
 
obj.score,
 
CASE
 
WHEN @rowtotal = obj.score THEN
 
@rownum
 
WHEN @rowtotal := obj.score THEN
 
@rownum :=@rownum + 1
 
WHEN @rowtotal = 0 THEN
 
@rownum :=@rownum + 1
 
END AS rownum
 
FROM
 
(
 
SELECT
 
uid,
 
score
 
FROM
 
testsort
 
ORDER BY
 
score DESC
 
) AS obj,
 
(SELECT @rownum := 0 ,@rowtotal := NULL) r

查詢指定用戶并列排名:

SELECT total.* FROM
 
(SELECT
 
obj.uid,
 
obj.score,
 
CASE
 
WHEN @rowtotal = obj.score THEN
 
@rownum
 
WHEN @rowtotal := obj.score THEN
 
@rownum :=@rownum + 1
 
WHEN @rowtotal = 0 THEN
 
@rownum :=@rownum + 1
 
END AS rownum
 
FROM
 
(
 
SELECT
 
uid,
 
score
 
FROM
 
testsort
 
ORDER BY
 
score DESC
 
) AS obj,
 
(SELECT @rownum := 0 ,@rowtotal := NULL) r) AS total WHERE total.uid = 222;

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關文章

  • Java的Struts框架中的主題模板和國際化設置

    Java的Struts框架中的主題模板和國際化設置

    這篇文章主要介紹了Java的Struts框架中的主題模板和國際化設置,Struts是Java的SSH三大web開放框架之一,需要的朋友可以參考下
    2015-12-12
  • MySQL存儲文本和圖片的方法

    MySQL存儲文本和圖片的方法

    今天小編就為大家分享一篇關于MySQL存儲文本和圖片的方法,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • Window系統(tǒng)下自動備份MySql數(shù)據(jù)庫方法

    Window系統(tǒng)下自動備份MySql數(shù)據(jù)庫方法

    Window下可以使用Bat批處理文件來對MySql進行備份操作,備份時一般數(shù)據(jù)量較大的情況可以使用復制文件的方式,但是這種方式要求服務器停機或者停止寫入命令,不大使用
    2012-11-11
  • MySQL中隱式轉換的踩坑記錄以及解決方法分享

    MySQL中隱式轉換的踩坑記錄以及解決方法分享

    這篇文章主要和大家分享一個MySQL隱式轉換時踩過的坑,差點把服務器整崩潰了,以及最后的解決辦法。文中的示例代碼講解詳細,感興趣的可以了解一下
    2022-11-11
  • mysql如何在存儲過程中輸出日志信息

    mysql如何在存儲過程中輸出日志信息

    這篇文章主要介紹了mysql如何在存儲過程中輸出日志信息問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • 快速修復損壞的MySQL數(shù)據(jù)庫

    快速修復損壞的MySQL數(shù)據(jù)庫

    在長時間使用 MySQL 后,數(shù)據(jù)庫可能會出現(xiàn)一些問題。大多數(shù)問題可以通過簡單的操作進行快速修復。下面介紹兩種快速檢修 MySQL 數(shù)據(jù)庫的方法。
    2011-06-06
  • win10 64位 MySQL8.0下載和安裝教程圖解

    win10 64位 MySQL8.0下載和安裝教程圖解

    這篇文章主要介紹了MySQL下載和安裝 win10 64位 MySQL8.0的教程圖解,本文圖文并茂給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-09-09
  • mysql 索引分類以及用途分析

    mysql 索引分類以及用途分析

    MySQL索引分為普通索引、唯一性索引、全文索引、單列索引、多列索引等等。這里將為大家介紹著幾種索引各自的用途。
    2011-08-08
  • mysql中binlog_format模式與配置詳細分析

    mysql中binlog_format模式與配置詳細分析

    這篇文章主要介紹了mysql中binlog_format模式與配置的相關內容,詳細介紹了binlog的三種格式與SBR、 RBR 兩種模式各自的優(yōu)缺點,需要的朋友可以參考。
    2017-10-10
  • 在VB.NET應用中使用MySQL的方法

    在VB.NET應用中使用MySQL的方法

    這篇文章主要介紹了在VB.NET應用中使用MySQL的方法,操作基于Visual Studio IDE進行,需要的朋友可以參考下
    2015-06-06

最新評論