一尘不染

在mysql查询中生成序列号

mysql

我有一张桌子: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中实现?


阅读 710

收藏
2020-05-17

共1个答案

一尘不染

基于您不想使用用户定义变量的原因,因为要避免有两个查询,一个用于初始化,一个用于使用它,您可以使用以下方法:

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