Если вы используете 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 работают, имея базовый случай, который засевает один или несколько значений, а также рекурсивный регистр, который является повторением предыдущих значений.