Heim >Datenbank >MySQL-Tutorial >Wie erstelle ich eine Datumsreihe in MySQL ohne temporäre Tabellen oder Variablen?

Wie erstelle ich eine Datumsreihe in MySQL ohne temporäre Tabellen oder Variablen?

Susan Sarandon
Susan SarandonOriginal
2024-12-11 01:54:10505Durchsuche

How to Generate a Date Series in MySQL Without Temporary Tables or Variables?

Generieren einer Datumsreihe 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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn