我有一个包含数据的MySQL表,我正在选择“排名”:
SELECT (@rank:=@rank+1) AS 'value' FROM MYTable a INNER JOIN (SELECT @rank :=0) b
返回:
VALUE
1
2
3
4
因为有4行。但我想要一个查询,可以通过一个额外的行返回结果(即n + 1,其中n == totalNumberRows):
VALUE
1
2
3
4
5
我该怎么做?
答案 0 :(得分:3)
UNION查询怎么样:
SELECT (@rank:=@rank+1) AS 'value'
FROM MYTable a
INNER JOIN (SELECT @rank :=0) b
UNION ALL
SELECT (@rank+1);