MySQL使用變量實(shí)現(xiàn)各種排序
核心代碼
--下面我演示下MySQL中的排序列的實(shí)現(xiàn) --測(cè)試數(shù)據(jù) CREATE TABLE tb ( score INT ); INSERT tb SELECT 5 UNION ALL SELECT 4 UNION ALL SELECT 4 UNION ALL SELECT 4 UNION ALL SELECT 3 UNION ALL SELECT 2 UNION ALL SELECT 1; --1.row_number式的排序 SET @row_number =0; SELECT @row_number := @row_number+1 AS row_number,score FROM tb ORDER BY score DESC ; +------------+-------+ | row_number | score | +------------+-------+ | 1 | 5 | | 2 | 4 | | 3 | 4 | | 4 | 4 | | 5 | 3 | | 6 | 2 | | 7 | 1 | +------------+-------+ --2.dense_rank式的排序 SET @dense_rank = 0,@prev_score = NULL; SELECT @dense_rank :=IF(@prev_score=score,@dense_rank,@dense_rank+1) AS decnse_rank, @prev_score := score AS score FROM tb ORDER BY score DESC ; +-------------+-------+ | decnse_rank | score | +-------------+-------+ | 1 | 5 | | 2 | 4 | | 2 | 4 | | 2 | 4 | | 3 | 3 | | 4 | 2 | | 5 | 1 | +-------------+-------+ --3.rank式的排序 SET @row=0,@rank=0,@prev_score=NULL; SELECT @row:=@row+1 AS ROW, @rank:=IF(@prev_score=score,@rank,@row) AS rank, @prev_score:=score AS score FROM tb ORDER BY score DESC; +------+------+-------+ | ROW | rank | score | +------+------+-------+ | 1 | 1 | 5 | | 2 | 2 | 4 | | 3 | 2 | 4 | | 4 | 2 | 4 | | 5 | 5 | 3 | | 6 | 6 | 2 | | 7 | 7 | 1 | +------+------+-------+
相關(guān)文章
php mysql連接數(shù)據(jù)庫(kù)實(shí)例
這篇文章主要介紹了php mysql連接數(shù)據(jù)庫(kù)實(shí)例,需要的朋友可以參考下2016-09-09MySQL存儲(chǔ)過(guò)程中游標(biāo)循環(huán)的跳出和繼續(xù)操作示例
這篇文章主要介紹了MySQL存儲(chǔ)過(guò)程中游標(biāo)循環(huán)的跳出和繼續(xù)操作示例,解決了在MySQL存儲(chǔ)過(guò)程中循環(huán)時(shí)執(zhí)行游標(biāo)的一個(gè)conitnue的操作解決方法,需要的朋友可以參考下2014-07-07UCenter info: MySQL Query Error SQL:SELECT value FROM [Table
大家先看下數(shù)據(jù)庫(kù)權(quán)限問(wèn)題,然后再進(jìn)行如下操作。2011-09-09mybatis-plus分頁(yè)傳入?yún)?shù)后sql where條件沒(méi)有l(wèi)imit分頁(yè)信息操作
這篇文章主要介紹了mybatis-plus分頁(yè)傳入?yún)?shù)后sql where條件沒(méi)有l(wèi)imit分頁(yè)信息操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-11-11MySQL系列之五 視圖、存儲(chǔ)函數(shù)、存儲(chǔ)過(guò)程、觸發(fā)器
視圖就是一條select語(yǔ)句執(zhí)行后返回的結(jié)果集;觸發(fā)器是與表有關(guān)的數(shù)據(jù)庫(kù)對(duì)象,在滿(mǎn)足定義條件時(shí)觸發(fā),并執(zhí)行觸發(fā)器中定義的語(yǔ)句集合;函數(shù)存儲(chǔ)著一系列sql語(yǔ)句,調(diào)用函數(shù)就是一次性執(zhí)行這些語(yǔ)句,而存儲(chǔ)過(guò)程就是一組可編程的函數(shù),需要的朋友可以參考下2021-07-07sphinxql如何得到結(jié)果數(shù)及show meta的詳細(xì)說(shuō)明
想用sphinxql只得到結(jié)果數(shù)。跟mysql里的count(*)一樣2013-02-02mysql字符集和數(shù)據(jù)庫(kù)引擎修改方法分享
使用虛擬主機(jī)空間上的phpmyadmin操作數(shù)據(jù)庫(kù)的時(shí)候,如果看到phpmyadmin首頁(yè)上顯示的MySQL 字符集為cp1252 West European (latin1),當(dāng)我們導(dǎo)入數(shù)據(jù)時(shí)就會(huì)出現(xiàn)亂碼2012-02-02