0
点赞
收藏
分享

微信扫一扫

MySQL实现简单排名

幸福的无所谓 2022-03-25 阅读 91


01 基础知识

  • sql语句中,使用@来定义一个变量。如:@abc

  • sql语句中,使用:=来给变量赋值,:@abc:=123,则变量abc的值为123

  • sql语句中,if(A,B,C)表示,如果A条件成立,那么执行B,否则执行C,如:@abc := if(2>1,100,200)的结果是,abc的值为100。

  • sql语句中,还有case…when…then

02 排名例子

SELECT
city_popularity.*,
CASE
WHEN @popularity = popularity THEN @rank
WHEN @popularity := popularity THEN @rank := @rank + 1
WHEN @popularity = 0 THEN @rank := @rank + 1
END AS rank
FROM
city_popularity,
(SELECT @rank := 0, @popularity := NULL) init
ORDER BY
popularity DESC;

查询结果:

MySQL实现简单排名_赋值


举报

相关推荐

0 条评论