MySQL实现简单排名

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群版 2核4GB 100GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用版 2核4GB 50GB
简介: MySQL实现简单排名

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;

查询结果:

参考博客:

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
23天前
|
关系型数据库 MySQL
Mysql 常见排名实现
Mysql 常见排名实现
11 0
|
10月前
|
关系型数据库 MySQL
|
SQL JSON NoSQL
一起来聊聊MySQL 8.0 的特性及排名可好?
还在等什么,快来一起讨论关注吧,公众号【八点半技术站】,欢迎加入社群
一起来聊聊MySQL 8.0 的特性及排名可好?
|
SQL 关系型数据库 MySQL
MySQL实现排名
MySQL实现排名
136 0
|
SQL 关系型数据库 MySQL
一文解决所有MySQL分类排名问题
对数据库中的记录依据某个字段进行排序是一种常见需求,虽然简单的Order by可以胜任,但如果想要输出具体的排名却难以直接实现。如果再考虑重复排名或者分类排名,那么情况就更为复杂。 本文介绍4种分类排名方式:子查询、自连接、自定义变量以及MySQL8.0窗口函数。
398 0
一文解决所有MySQL分类排名问题
|
关系型数据库 MySQL 计算机视觉
|
关系型数据库 MySQL
|
关系型数据库 MySQL
mysql 排名
#排名(原文) 需求:获取分类平均值的名次? 比如10个班级的平均分,按照班级名称排序,后面跟着名次。 记录表:table_test ; 字段:banji 班级;AvgS 平均分;pm 排名; 解决方法: FROM ( SELECT A.
853 0

热门文章

最新文章