Maison >base de données >tutoriel mysql >Comment générer une série de dates dans MySQL sans tables ni variables temporaires ?
Lorsque vous cherchez à générer une série de dates dans une plage particulière pour les rapports MySQL, l'approche optimale est cruciale. Ceci est particulièrement pertinent dans les cas où la création de tables temporaires et la définition de variables sont interdites.
Une solution efficace consiste à utiliser une combinaison de sous-requêtes et d'opérations d'union. Considérez la requête suivante :
select * from (select adddate('1970-01-01',t4*10000 + t3*1000 + t2*100 + t1*10 + t0) gen_date from (select 0 t0 union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t0, (select 0 t1 union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t1, (select 0 t2 union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t2, (select 0 t3 union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t3, (select 0 t4 union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t4) v where gen_date between '2017-01-01' and '2017-12-31'
Cette requête génère une série de dates comprises entre le « 2017-01-01 » et le « 2017-12-31 » en combinant les résultats de plusieurs sous-requêtes. Les sous-requêtes créent un tableau de nombres de 0 à 9, qui sont ensuite utilisés pour construire les dates à l'aide de la fonction adddate(). La dernière clause Where filtre les résultats pour inclure uniquement les dates comprises dans la plage spécifiée.
En utilisant cette méthode, vous pouvez générer efficacement une série de dates sans avoir besoin de tables ou de variables temporaires, ce qui la rend adaptée aux situations avec autorisations restreintes.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!