在mysql中,如何在查询末尾添加一个值为(previousRowColA+1)的额外行?

在mysql中,如何在查询末尾添加一个值为(previousRowColA+1)的额外行?,mysql,sql,Mysql,Sql,我有一个包含数据的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 我该怎么做?联合查询怎么样: SELECT (@rank:=@rank+1) AS 'value'

我有一个包含数据的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

我该怎么做?

联合查询怎么样:

SELECT (@rank:=@rank+1) AS 'value'
FROM MYTable a
    INNER JOIN (SELECT @rank :=0) b
UNION ALL
SELECT (@rank+1);

联合查询如何:

SELECT (@rank:=@rank+1) AS 'value'
FROM MYTable a
    INNER JOIN (SELECT @rank :=0) b
UNION ALL
SELECT (@rank+1);

联合查询如何:

SELECT (@rank:=@rank+1) AS 'value'
FROM MYTable a
    INNER JOIN (SELECT @rank :=0) b
UNION ALL
SELECT (@rank+1);

联合查询如何:

SELECT (@rank:=@rank+1) AS 'value'
FROM MYTable a
    INNER JOIN (SELECT @rank :=0) b
UNION ALL
SELECT (@rank+1);


使用union并选择某个对象作为value@Hardy谢谢,没错。请参见下面TimBurch的答案。UNION ALL可能更好,因为它的开销更少,而且您实际上需要所有行。@JoachimIsaksson从性能上看,UNION ALL更好,谢谢:使用UNION并选择一些作为value@Hardy谢谢,没错。请参见下面TimBurch的答案。UNION ALL可能更好,因为它的开销更少,而且您实际上需要所有行。@JoachimIsaksson从性能上看,UNION ALL更好,谢谢:使用UNION并选择一些作为value@Hardy谢谢,没错。请参见下面TimBurch的答案。UNION ALL可能更好,因为它的开销更少,而且您实际上需要所有行。@JoachimIsaksson从性能上看,UNION ALL更好,谢谢:使用UNION并选择一些作为value@Hardy谢谢,没错。请参见下面TimBurch的答案。UNION ALL可能更好,因为它的开销更少,而且您实际上需要所有行。@JoachimIsaksson从性能上看,UNION ALL更好,谢谢:谢谢!这就是答案。当堆栈允许时,我会在11分钟内标记它。但当它可以替换为UNION ALL操作时,请避免使用UNION。联合导致分组,联合所有-不是。@zealot联合所有将如何改变该查询?它还会像我希望的那样工作吗?UNION相当于从..中选择不同的行。。联盟所有人..@zealot好的,所以联盟所有人的表现更好谢谢!非常感谢。这就是答案。当堆栈允许时,我会在11分钟内标记它。但当它可以替换为UNION ALL操作时,请避免使用UNION。联合导致分组,联合所有-不是。@zealot联合所有将如何改变该查询?它还会像我希望的那样工作吗?UNION相当于从..中选择不同的行。。联盟所有人..@zealot好的,所以联盟所有人的表现更好谢谢!非常感谢。这就是答案。当堆栈允许时,我会在11分钟内标记它。但当它可以替换为UNION ALL操作时,请避免使用UNION。联合导致分组,联合所有-不是。@zealot联合所有将如何改变该查询?它还会像我希望的那样工作吗?UNION相当于从..中选择不同的行。。联盟所有人..@zealot好的,所以联盟所有人的表现更好谢谢!非常感谢。这就是答案。当堆栈允许时,我会在11分钟内标记它。但当它可以替换为UNION ALL操作时,请避免使用UNION。联合导致分组,联合所有-不是。@zealot联合所有将如何改变该查询?它还会像我希望的那样工作吗?UNION相当于从..中选择不同的行。。联盟所有人..@zealot好的,所以联盟所有人的表现更好谢谢!