If you happen to be using the MariaDB fork of MySQL, the SEQUENCE
engine allows direct generation of number sequences. It does this by using virtual (fake) one column tables.
For example, to generate the sequence of integers from 1 to 1000, do this
SELECT seq FROM seq_1_to_1000;
For 0 to 11, do this.
SELECT seq FROM seq_0_to_11;
For a week's worth of consecutive DATE values starting today, do this.
SELECT FROM_DAYS(seq + TO_DAYS(CURDATE)) dateseq FROM seq_0_to_6
For a decade's worth of consecutive DATE
values starting with '2010-01-01' do this.
SELECT FROM_DAYS(seq + TO_DAYS('2010-01-01')) dateseq
FROM seq_0_to_3800
WHERE FROM_DAYS(seq + TO_DAYS('2010-01-01')) < '2010-01-01' + INTERVAL 10 YEAR
If you don't happen to be using MariaDB, please consider it.