Heim > Datenbank > MySQL-Tutorial > Wie füllt man fehlende Daten beim Abrufen von MySQL-Daten aus?

Wie füllt man fehlende Daten beim Abrufen von MySQL-Daten aus?

Barbara Streisand
Freigeben: 2024-12-12 19:09:11
Original
370 Leute haben es durchsucht

How to Populate Missing Dates in MySQL Data Retrievals?

Daten zwischen Datumsangaben abrufen: Leere Datensätze füllen

In MySQL wird die Auswahl von Daten innerhalb eines bestimmten Datumsbereichs üblicherweise mit dem BETWEEN-Operator erreicht. Dieser Ansatz kann jedoch dazu führen, dass Daten fehlen, wenn keine Daten vorhanden sind. Um dieses Problem zu lösen, wird eine Technik mit „Kalendertabellen“ eingesetzt.

Das Konzept einer Kalendertabelle besteht darin, eine Tabelle zu erstellen, die eine Folge von Datumsangaben innerhalb des gewünschten Bereichs enthält. Dies wird mit dem folgenden Code erreicht:

CREATE TABLE ints (i INTEGER);
INSERT INTO ints VALUES (0), (1), (2), (3), (4), (5), (6), (7), (8), (9);
Nach dem Login kopieren

Diese Tabelle stellt einen Zahlenbereich von 0 bis 9 bereit. Um die Kalendertabelle zu generieren, verbinden wir Ints mehrmals mit sich selbst, um eine Liste von Datumsintervallen zu erstellen:

SELECT '2009-06-25' + INTERVAL a.i * 10 + b.i DAY as date
FROM ints a JOIN ints b
ORDER BY a.i * 10 + b.i
Nach dem Login kopieren

Das Ergebnis ist eine Tabelle mit einer Abfolge von Daten von „25.06.2009“ bis „04.07.2009“. Um die Daten abzurufen, haben wir die Kalendertabelle mit der Originaltabelle verknüpft:

SELECT cal.date, tbl.data
FROM (
    SELECT '2009-06-25' + INTERVAL a.i * 10 + b.i DAY as date
    FROM ints a JOIN ints b
    ORDER BY a.i * 10 + b.i
) cal LEFT JOIN tbl ON cal.date = tbl.date
WHERE cal.date BETWEEN '2009-06-25' AND '2009-07-01';
Nach dem Login kopieren

Diese Abfrage gibt die Daten für alle Daten zwischen „25.06.2009“ und „01.07.2009“ zurück. einschließlich Zeilen ohne Daten, die mit „0“ gefüllt sind.

Das obige ist der detaillierte Inhalt vonWie füllt man fehlende Daten beim Abrufen von MySQL-Daten aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage