0

我想编写一个查询以在 MySQL 中打印从 1 到 100 的数字,但我似乎找不到任何解决方案。我尝试了几件事

with CTE as  
(  
 select 1 Number  
 union all  
 select Number +1 from CTE where Number<100  
)  

select *from CTE  

但我认为它不适用于 MySQL

4

1 回答 1

2

如果您使用的是 MySQL 8+,那么您当前的语法并不遥远,甚至可能工作:

WITH RECURSIVE cte (Number) AS (
    SELECT 1            -- base case returns 1
    UNION ALL
    SELECT Number + 1   -- recursive case returns 1 + previous value
    FROM cte
    WHERE Number < 100
)

SELECT Number
FROM cte
ORDER BY Number;

递归 CTE 的工作原理是有一个基本案例,它为一个或多个值提供种子,以及一个递归案例,它是对先前值的迭代。

于 2020-05-08T04:24:33.073 回答