我有一张桌子:student_marks
marks
-----
44
55
64
98
76
Run Code Online (Sandbox Code Playgroud)
预期产量:
serial_number|marks
--------------------
1 | 44
2 | 55
3 | 64
4 | 98
5 | 76
Run Code Online (Sandbox Code Playgroud)
使用mysql用户定义的变量,可以使用查询来完成:
set @a:=0;select @a:=@a+1 serial_number, marks from student_marks;
Run Code Online (Sandbox Code Playgroud)
有没有办法在msyql中实现这一点而不使用用户定义的变量?
Gar*_*thD 60
基于您不希望使用用户定义变量的原因,希望避免有2个查询,一个用于初始化,一个用于它,您可以使用以下内容:
SELECT @a:=@a+1 serial_number,
marks
FROM student_marks,
(SELECT @a:= 0) AS a;
Run Code Online (Sandbox Code Playgroud)
小智 6
此问题的最佳答案应为以下最佳实践
SET @count:=0;
SELECT (@count:=@count+1) AS serial_number,
marks
FROM student_marks
Run Code Online (Sandbox Code Playgroud)