`

为 MySQL 的查询结果添加排名字段

阅读更多

转自  http://www.oschina.net/question/12_63477

 

我正在用 MySQL 客户端的时候,突然想到如果可以给查询结果添加排名该多好啊,然后就找到了一个简单的解决办法。

下面是一个示例表的数据:

然后我们要根据 Roll_No 字段进行排序并给出排名,我们首先必须定义一个初始值为0的变量,然后在查询结果中使用这个变量。

如下面的代码:

1 SET @counter=0;
2  
3 SELECT @counter:=@counter+1 AS Rank,LastName,Roll_no as Roll FROM Students ORDER BY Roll_no ASC ;

 

执行该语句的结果如下:

更多关于自定义变量的内容请看 MySQL 的文档

 

用一条sql搞定:

 

--也就是把临时变量, 放在from 子句里. 
SELECT @counter:=@counter+1 AS Rank,LastName,Roll_no as Roll FROM Students,(SELECT @counter:=0) AS t 
ORDER BY Roll_no ASC;

 

不用临时变量, 用表的自关联

SELECT 

(SELECT COUNT(ROLL_NO) FROM Students WHERE s.ROLL_NO <= ROLL_NO) AS Rank, 

s.LastName, s.Roll_no AS Roll 

FROM Students s 

ORDER BY s.Roll_no ASC
 
分享到:
评论

相关推荐

    MySQL中给自定义的字段查询结果添加排名的方法

    本文将详细讲解如何在MySQL中为自定义字段的查询结果添加排名。 首先,我们需要理解基本的SQL查询语法。在MySQL中,`SELECT`语句用于从表中选择数据,`ORDER BY`子句用于对查询结果进行排序,而`AS`关键字则用于给...

    mysql实现根据多个字段查找和置顶功能

    这里的查询首先会按`priority`字段降序排序,即优先级越高,排名越靠前。如果`priority`相同,再按照`created_at`降序排列,这样最新的帖子会出现在前面。这样,高优先级(置顶)的帖子无论何时创建都会显示在列表的...

    (mysql面试题)MySQL中的优化技巧,如查询优化、索引优化及代码展示.txt

    GROUP BY 和 ORDER BY 是常见的SQL操作,用于对查询结果进行分组和排序。正确使用这些操作可以显著提升查询效率。例如,在需要对学生成绩进行统计分析时,我们可以先通过索引对数据进行预排序,然后再使用GROUP BY或...

    mysql 8.0官方文档

    1. 强化的窗口函数:MySQL 8.0引入了窗口函数,允许在分组数据上执行计算,如行号、排名、累积和等,这极大地增强了SQL查询的灵活性。 2. 可用性增强的InnoDB存储引擎:InnoDB存储引擎的性能得到优化,支持更灵活的...

    php+mysql学生成绩查询(系统).zip

    4. 结果展示:将查询结果格式化为易于理解的形式,如表格或图表,返回给用户。 四、数据库设计 数据库设计是系统的核心。在学生成绩查询系统中,我们需要创建至少两个表:学生信息表(包括学号、姓名、班级等字段...

    MySQL8.0安装包/非关系型数据库

    4. **窗口函数**:MySQL 8.0 添加了对窗口函数的支持,这允许用户在不使用子查询的情况下进行复杂的行级计算,如排名、累积和移动平均等。 5. **JSON字段支持**:虽然MySQL主要作为关系型数据库,但8.0版本开始支持...

    mysql的jdbc的jar包(5.1和8.0)

    3. **JSON支持**:增强了对JSON数据类型的处理,包括查询和操作JSON字段的能力。 4. **窗口函数**:新增了SQL窗口函数,用于计算行级别的聚合信息,如排名、移动平均等。 5. **多语句执行**:支持在一个JDBC批处理中...

    mysql代码-MySQL-查询成绩为第二名(第N名)的所有学生数据

    2. **ORDER BY**:这个语句用于对查询结果进行排序。在寻找第二名学生时,我们需要根据分数字段`score`对数据进行降序排序(因为高分在前)。因此,可以使用`ORDER BY score DESC`。 为了找到成绩第二的学生,我们...

    mysql-8.0.12-macos10.13-x86_64.dmg

    MySQL是世界上最受欢迎的开源关系型数据库管理系统之一,其最新版本为8.0.12,专为macOS 10.13系统设计的版本是"mysql-8.0.12-macos10.13-x86_64.dmg"。这个安装包是一个.dmg文件,是苹果Mac操作系统中常见的磁盘...

    搜索系统mysql数据库设计.zip

    1. **数据库模式设计**:设计数据库模式是第一步,通常包括实体(如用户、搜索查询、结果等)、属性(如用户ID、查询关键字、搜索结果排名等)以及它们之间的关系。良好的数据库模式应该遵循第一范式(1NF)、第二...

    学生信息管理系统 JSP+MySQL

    1. 学生信息管理:包括添加、修改、删除和查询学生信息。开发者需要编写对应的JSP页面,处理HTTP请求,调用后台的JavaBean进行数据操作。 2. 登录注册模块:用户通过输入用户名和密码登录系统,管理员可以创建新...

    mysql刷题.docx

    - **`LIMIT`**: 用于限制查询结果的行数。`LIMIT 2, 1`表示从第三行开始取一行数据,这里是为了得到倒数第三的入职日期。 **扩展知识点:** - **多条件排序**: 如果需要根据多个字段排序,可以在`ORDER BY`后面添加...

    PHP+MYSQL的文章管理系统

    9. SEO优化:通过添加元标签、自定义URL结构等方式,提升搜索引擎对文章的抓取和排名。 学生成绩管理系统---赵雷,这个文件名称可能是另一个项目,它可能是一个用于管理学生分数的应用。不过,由于它不是本次讨论的...

    基于PHP和MySQL数据库实现的学生成绩管理系统.7z_成绩管理系统_

    - 学生管理:添加、修改、删除学生信息,查询学生基本信息。 - 课程管理:设置和维护课程信息,包括新增、编辑和删除课程。 - 成绩录入:输入或导入学生的各科成绩,系统自动计算平均分、总分等统计信息。 - ...

    学习 Mysql 时的笔记.zip

    - SQL语言:SQL(结构化查询语言)是与MySQL交互的基础,包括增、删、改、查等基本操作。 - 数据类型:熟悉MySQL支持的多种数据类型,如整数、浮点数、字符串、日期时间等。 2. **安装与配置** - 安装过程:讲解...

    sjk-mysql8.0.14_www.11684.com.zip

    MySQL 8.0.14 添加了对窗口函数的支持,允许用户在聚合查询中进行更复杂的分析,如排名、分组累计等,而无需使用子查询或者自连接,极大地提高了复杂查询的编写和执行效率。 3. **JSON增强**: JSON字段类型在...

    MySQL中的JOIN详解及sql实战

    如果我们添加一个ON条件来限制连接的结果,例如: ```sql SELECT * FROM user_sal s1 JOIN user_sal s2 ON s1.sal , s2.id; ``` 这里我们仅选择那些`s1.sal`小于`s2.sal`的记录。这将过滤掉那些不满足条件的记录,...

    ySQL学生成绩管理系统 python+flask+mysql的方式,未做服务器部署,可以在单机上测试运行.zip

    这包括建立数据库连接、执行SQL语句、处理查询结果等。 4. 数据模型:根据学生成绩管理的需求,定义数据库表结构,如学生信息表、课程信息表和成绩表等,确保数据的完整性和一致性。 四、系统功能详解 1. 学生管理...

Global site tag (gtag.js) - Google Analytics