Mysql 使用未来年份创建@X行
我正在尝试创建一个SQL,它将显示未来年份的@X行:Mysql 使用未来年份创建@X行,mysql,union,user-defined,Mysql,Union,User Defined,我正在尝试创建一个SQL,它将显示未来年份的@X行: year(now())+1 year(now())+2 year(now())+3 ... @X是用户定义的变量 我只想使用union select,但它看起来很糟糕,适用于相当低的@x: set @x:=3; select year(now())+1 as year union select if(@x>1, year(now())+2,null) as year union select if(@x>2, year(now(
year(now())+1
year(now())+2
year(now())+3
...
@X是用户定义的变量
我只想使用union select,但它看起来很糟糕,适用于相当低的@x:
set @x:=3;
select year(now())+1 as year
union select if(@x>1, year(now())+2,null) as year
union select if(@x>2, year(now())+3,null) as year
union select if(@x>3, year(now())+4,null) as year;
这将是自MySQL 8以来可用的递归CTE的领域
SET @x = 5;
WITH RECURSIVE
years
AS
(
SELECT year(now()) year
UNION ALL
SELECT year + 1
FROM years
WHERE year + 1 - year(now()) <= @x
)
SELECT *
FROM years;