zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

MySQL实现简单排名

mysql 实现 简单 排名
2023-09-11 14:15:40 时间

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;

查询结果:
在这里插入图片描述

参考博客: