Heim >Datenbank >MySQL-Tutorial >Wie fülle ich fehlende Daten in einem MySQL-Bereich mit Nullwerten?
MySQL-Datumsbereich füllt fehlende Werte
Angenommen, Sie haben eine Tabelle mit zwei Spalten (Datum und Punktzahl) und möchten fehlende Daten ergänzen, um eine kontinuierliche Wertefolge zu erhalten. Wenn Ihre Tabelle beispielsweise derzeit die folgenden Daten enthält:
<code>日期 分数 ----------------- 2010-08-01 19 2010-08-02 21 2010-08-04 14 2010-08-07 10 2010-08-10 14</code>
Sie möchten die fehlenden Daten (03.08.2010, 05.08.2010 und 06.08.2010) mit Nullen füllen, um das folgende Ergebnis zu erhalten:
<code>日期 分数 ----------------- 2010-08-01 19 2010-08-02 21 2010-08-03 0 2010-08-04 14 2010-08-05 0 2010-08-06 0 2010-08-07 10 2010-08-10 14</code>
Um dies zu erreichen, können Sie die folgende Abfrage verwenden:
<code class="language-sql">SELECT x.ts AS timestamp, COALESCE(y.score, 0) AS cnt FROM (SELECT DATE_ADD('2010-06-06', INTERVAL n.id - 1 DAY) AS ts FROM numbers n WHERE DATE_ADD('2010-06-06', INTERVAL n.id -1 DAY) < '2010-08-11') x LEFT JOIN your_table y ON DATE(x.ts) = DATE(y.date);</code>
Hier ist eine Aufschlüsselung der Abfrage:
Bitte ersetzen Sie your_table
durch Ihren tatsächlichen Tabellennamen. Stellen Sie sicher, dass Sie über eine Tabelle mit dem Namen numbers
verfügen, die eine automatisch inkrementierende Spalte mit dem Namen id
enthält, die aufeinanderfolgende Ganzzahlen beginnend bei 1 enthält. Wenn nicht, müssen Sie zuerst eines erstellen. Beispiel: CREATE TABLE numbers (id INT AUTO_INCREMENT PRIMARY KEY);
Fügen Sie dann eine ausreichende Anzahl von Datensätzen ein, um Ihren Datumsbereich abzudecken.
Das obige ist der detaillierte Inhalt vonWie fülle ich fehlende Daten in einem MySQL-Bereich mit Nullwerten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!