MySQL使用變量實現(xiàn)各種排序
更新時間:2017年05月20日 13:58:10 作者:feixianxxx
這篇文章主要介紹了MySQL使用變量實現(xiàn)各種排序,需要的朋友可以參考下
核心代碼
--下面我演示下MySQL中的排序列的實現(xiàn) --測試數(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)文章
MySQL存儲過程中游標(biāo)循環(huán)的跳出和繼續(xù)操作示例
這篇文章主要介紹了MySQL存儲過程中游標(biāo)循環(huán)的跳出和繼續(xù)操作示例,解決了在MySQL存儲過程中循環(huán)時執(zhí)行游標(biāo)的一個conitnue的操作解決方法,需要的朋友可以參考下2014-07-07UCenter info: MySQL Query Error SQL:SELECT value FROM [Table
大家先看下數(shù)據(jù)庫權(quán)限問題,然后再進(jìn)行如下操作。2011-09-09mybatis-plus分頁傳入?yún)?shù)后sql where條件沒有l(wèi)imit分頁信息操作
這篇文章主要介紹了mybatis-plus分頁傳入?yún)?shù)后sql where條件沒有l(wèi)imit分頁信息操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11MySQL系列之五 視圖、存儲函數(shù)、存儲過程、觸發(fā)器
視圖就是一條select語句執(zhí)行后返回的結(jié)果集;觸發(fā)器是與表有關(guān)的數(shù)據(jù)庫對象,在滿足定義條件時觸發(fā),并執(zhí)行觸發(fā)器中定義的語句集合;函數(shù)存儲著一系列sql語句,調(diào)用函數(shù)就是一次性執(zhí)行這些語句,而存儲過程就是一組可編程的函數(shù),需要的朋友可以參考下2021-07-07sphinxql如何得到結(jié)果數(shù)及show meta的詳細(xì)說明
想用sphinxql只得到結(jié)果數(shù)。跟mysql里的count(*)一樣2013-02-02