Mysql
 sql >> Database >  >> RDS >> Mysql

generate_series() equivalente in MySQL

Questo è come lo faccio. Crea un intervallo di date dal 01-01-2011 al 31-12-2011 :

select 
    date_format(
        adddate('2011-1-1', @num:[email protected]+1), 
        '%Y-%m-%d'
    ) date
from 
    any_table,    
    (select @num:=-1) num
limit 
    365

-- use limit 366 for leap years if you're putting this in production

L'unico requisito è il numero di righe in any_table deve essere maggiore o uguale alla dimensione dell'intervallo necessario (>=365 righe in questo esempio). Molto probabilmente lo utilizzerai come sottoquery dell'intera query, quindi nel tuo caso any_table può essere una delle tabelle che usi in quella query.