mysql获取数据序号 Mysql查询后自带序号

导读:
在Mysql查询中,有时需要对结果集进行排序并带有序号 。这样可以方便地查看数据的排名和顺序 。本文将介绍如何使用Mysql查询后自带序号,并给出实例演示 。
正文:
Mysql查询后自带序号的语法如下:
SELECT @rownum := @rownum + 1 AS rank, column1, column2, ...
FROM table_name, (SELECT @rownum := 0) r
ORDER BY column1 DESC;
其中,@rownum是一个变量,用于计数 。每次查询时都会加1,从而生成序号 。table_name是要查询的表名,column1、column2等是要查询的列名 。DESC表示降序排列 , ASC则表示升序排列 。
下面是一个实例演示:
假设有一个学生表,包含学生姓名(name)和成绩(score)两个字段 。现在需要按照成绩降序排列,并显示每个学生的排名 。
首先创建一个测试表,并插入数据:
CREATE TABLE student (
id INT(11) NOT NULL AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
score INT(11) NOT NULL,
【mysql获取数据序号 Mysql查询后自带序号】PRIMARY KEY (id)
);
INSERT INTO student (name, score) VALUES ('张三', 90);
INSERT INTO student (name, score) VALUES ('李四', 80);
INSERT INTO student (name, score) VALUES ('王五', 95);
INSERT INTO student (name, score) VALUES ('赵六', 85);
然后执行以下查询语句:
SELECT @rownum := @rownum + 1 AS rank, name, score
FROM student, (SELECT @rownum := 0) r
ORDER BY score DESC;
运行结果如下:
+------+--------+-------+
| rank | name | score |
| 1 | 王五 | 95 |
| 2 | 张三 | 90 |
| 3 | 赵六 | 85 |
| 4 | 李四 | 80 |
可以看到,每个学生的排名都显示在了rank列中 。
总结:
Mysql查询后自带序号是一种方便的查询方式,可以快速生成排名和顺序 。需要注意的是,在使用该方法时 , 必须先初始化变量@rownum 。同时 , 还需要根据实际需求调整排序方式和查询字段 。

    推荐阅读