Mysql
 sql >> Base de données >  >> RDS >> Mysql

generate_series() équivalent dans MySQL

C'est comme ça que je fais. Il crée une plage de dates à partir du 2011-01-01 au 2011-12-31 :

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

La seule exigence est que le nombre de lignes dans any_table doit être supérieur ou égal à la taille de la plage nécessaire (>=365 lignes dans cet exemple). Vous l'utiliserez très probablement comme une sous-requête de votre requête entière, donc dans votre cas any_table peut être l'une des tables que vous utilisez dans cette requête.