MySql语句实现排名php在手机上如何打开
思路:设置⼀个变量并赋值初始值,循环⼀次⾃增加1,从⽽实现排序
三种排序
1、将已经排好顺序的数据从头开始取出,每取⼀条⾃增加⼀;
2、当出现相同数据时,排名保持不变,此时需要再设置⼀个变量,⽤来记录上⼀个数据的值,跟当前数据的值进⾏对⽐,如果相同,则排名不变,不相同则排名⾃增加⼀;
3、当出现相同数据时,排名保持不变,保持不变的排名依旧占⽤⼀个位置。
1、创建⼀张表分数表
CREATE TABLE score (
id INT (11) NOT NULL auto_increment,
memberId VARCHAR(64) NOT NULL,
向上取整函数20元score DOUBLE(5,2) NOT NULL,
PRIMARY KEY(id)
)
2、添加数据
INSERT INTO score (memberId, score)
VALUES
(100, 50.5),
(101, 30.6),
(102, 20),
模块电源行业(103, 60.3),
(104, 80.8),
(105, 50.7),
unix是什么操作系统苹果(106, 70.9),
(107,20),
eclipse最新版本使用教程(108,80.8)
3、查询
mysql语句顺序1、⼀次排列
select score.*,@scoreNum :=@scoreNum+1 as scoreNum from score,(select @scoreNum :=0) init ORDER BY score DESC
2、数据相同,排名保持不变,⼀次排序
select score.*,case when @score = score then @scoreNum when @score := score then @scoreNum :=@scoreNum+1 when @score =0 then @scoreNum
3、数据相同,排名保持不变,且占有字符
select score.*,@scoreNum1 :=@scoreNum1+1,@scoreNum := case when @score = score then @scoreNum when @score := score then @scoreNum1 wh
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论