Heim >Datenbank >MySQL-Tutorial >Wie erstelle ich eine Datumsreihe in MySQL ohne temporäre Tabellen oder Variablen?
Wenn Sie eine Datumsreihe innerhalb eines bestimmten Bereichs für MySQL-Berichte generieren möchten, ist der optimale Ansatz entscheidend. Dies ist insbesondere in Fällen relevant, in denen die Erstellung temporärer Tabellen und das Festlegen von Variablen verboten sind.
Eine effektive Lösung besteht darin, eine Kombination aus Unterabfragen und Union-Operationen zu verwenden. Betrachten Sie die folgende Abfrage:
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'
Diese Abfrage generiert eine Reihe von Datumsangaben zwischen dem 01.01.2017 und dem 31.12.2017, indem sie die Ergebnisse mehrerer Unterabfragen kombiniert. Die Unterabfragen erstellen eine Tabelle mit Zahlen von 0 bis 9, die dann zur Erstellung der Datumsangaben mithilfe der Funktion adddate() verwendet werden. Die abschließende where-Klausel filtert die Ergebnisse so, dass nur Datumsangaben innerhalb des angegebenen Bereichs enthalten sind.
Durch die Verwendung dieser Methode können Sie effizient eine Reihe von Datumsangaben generieren, ohne dass temporäre Tabellen oder Variablen erforderlich sind, sodass sie für Situationen mit geeignet ist eingeschränkte Berechtigungen.
Das obige ist der detaillierte Inhalt vonWie erstelle ich eine Datumsreihe in MySQL ohne temporäre Tabellen oder Variablen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!