MySQL 查询选择自动递增的结果作为结果中添加的新列

标签 mysql

我有一个包含以下字段的学生表:

student(student_id, student_name, student_avg)

我需要在 MySQL 中编写一个查询,它将结果显示为:

序列号=> 结果还应该有一个序列号为 1,2,3,...,n 的新列,就像结果中每一行的自动增量一样。

student_id
student_name
student_avg > 4

我不想以任何方式改变我的 table 。我所要做的就是编写一个查询,它会给我上述结果。我希望我很清楚。

示例数据:

student_id         student_name      student_avg 
 1                    abc               2.5
 2                    xyz               4.1
 3                    def               4.2     

查询后的示例输出:

serial_no    student_id    student_name     student_avg
  1             2            xyz               4.1
  2             3            def               4.2

最佳答案

试试这个

SELECT  @s:=@s+1 serial_number,student_id,student_name,student_avg
FROM    students,
        (SELECT @s:= 0) AS s
WHERE
student_avg > 4;

https://stackoverflow.com/a/11096550/1423506

关于MySQL 查询选择自动递增的结果作为结果中添加的新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11861799/

相关文章:

php - 在 PHP 中更改来自 MySQL 的项目的顺序

php - 如何在主键数据上添加外键数据并显示

android - mysql soap 调用在 android 设备上不起作用

mysql - 我可以为选择查询中的每一行设置自定义 CONCAT() 吗? mysql

mysql - 比较同一列中的两个值

mysql - 从数据库中删除datagridview中的数据

mysql - 获取每个产品的前两条记录

php - 在 1 个表中显示和汇总 php mysql 上的数据

java - 当我尝试使用 hibernate 将字段插入表时出错

mysql - 在范围表中进行高效查找