12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
ADADADADAD
mysql数据库 时间:2024-11-29 10:08:32
作者:文/会员上传
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
--下面我演示下MySQL中的排序列的实现--测试数据CREATE TABLE tb(score INT);INSERT tb SELECT 5 UNION ALL SELECT 4 UNION ALL SELECT 4 UNION ALL SELECT 4 UNION ALL SE
以下为本文的正文内容,内容仅供参考!本站为公益性网站,复制本文以及下载DOC文档全部免费。
--下面我演示下MySQL中的排序列的实现--测试数据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 SELECT1;--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 scoreFROM 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 |+------+------+-------+
11-20
11-19
11-20
11-20
11-20
11-19
11-20
11-20
11-19
11-20
11-19
11-19
11-19
11-19
11-19
11-19