我想编写一个查询以在 MySQL 中打印从 1 到 100 的数字,但我似乎找不到任何解决方案。我尝试了几件事
with CTE as
(
select 1 Number
union all
select Number +1 from CTE where Number<100
)
select *from CTE
但我认为它不适用于 MySQL
如果您使用的是 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 的工作原理是有一个基本案例,它为一个或多个值提供种子,以及一个递归案例,它是对先前值的迭代。