mysql - 在mysql查询中生成序列号

标签 mysql sql

我有一张 table :student_marks

marks
-----
  44
  55
  64
  98
  76

预期输出:

serial_number|marks
--------------------
  1          | 44
  2          | 55
  3          | 64
  4          | 98
  5          | 76

使用mysql用户定义变量,可以使用查询来完成:

 set  @a:=0;select @a:=@a+1 serial_number, marks from student_marks;

有什么方法可以在不使用用户定义变量的情况下在 msyql 中实现这一点?

最佳答案

根据您不想使用用户定义变量的原因,因为希望避免进行 2 个查询,一个用于初始化,一个用于使用它,您可以使用以下内容:

SELECT  @a:=@a+1 serial_number, 
        marks 
FROM    student_marks,
        (SELECT @a:= 0) AS a;

关于mysql - 在mysql查询中生成序列号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11094466/

相关文章:

mysql - 在 MySQL 表的单个列上是否有任何特定使用具有不同索引名称的多个索引

mysql - SQL可选参数?

PHP SQL 包装器

php - 在 PHP 和 MySQL 方面需要帮助

mysql - 选择列 SQL

php - 拉维尔 4 : Query builder retrieve join table data

php - 阅读页面上的特定帖子

mysql:基于1小时间隔统计特定时间内访问资源的用户数

PHP 字符串转时间格式

mysql - 如何将大型数据库迁移到新服务器