Heim > Datenbank > MySQL-Tutorial > Wie rufe ich alle Daten innerhalb eines Bereichs ab, einschließlich der Daten mit null Datensätzen in MySQL?

Wie rufe ich alle Daten innerhalb eines Bereichs ab, einschließlich der Daten mit null Datensätzen in MySQL?

Linda Hamilton
Freigeben: 2025-01-03 13:33:39
Original
913 Leute haben es durchsucht

How to Retrieve All Dates within a Range, Including Those with Zero Records in MySQL?

MySQL: Alle Daten in einem Bereich abrufen, einschließlich leerer Daten

Bei der Datenbankverwaltung erfordert die Visualisierung des Benutzerbasiswachstums häufig eine grafische Darstellung. Um ein solches Diagramm zu erstellen, verfügen Sie möglicherweise über eine Abfrage, die tägliche Benutzerzahlen innerhalb eines bestimmten Datumsbereichs erfasst. Wenn jedoch an einigen Tagen keine Benutzeraktivität vorliegt, werden diese Daten in den Ergebnissen weggelassen. Um dieses Problem zu beheben, untersuchen wir, wie Sie einen umfassenden Datumsbereich erhalten, einschließlich Datumsangaben ohne Datensätze.

In MySQL ruft die folgende Abfrage nach Tagen gruppierte Benutzerzahlen innerhalb eines angegebenen Datumsbereichs ab:

SELECT DATE(datecreated), count(*) AS number
FROM users
WHERE DATE(datecreated) > '2009-06-21' AND DATE(datecreated) <= DATE(NOW())
GROUP BY DATE(datecreated)
ORDER BY datecreated ASC
Nach dem Login kopieren

Diese Abfrage liefert zwar die meisten gewünschten Informationen, schließt jedoch Daten ohne Benutzer aus. Um leere Datumsangaben einzubeziehen, können wir den folgenden Ansatz nutzen:

SELECT  *
FROM (
    SELECT date_add('2003-01-01 00:00:00.000', INTERVAL n5.num*10000+n4.num*1000+n3.num*100+n2.num*10+n1.num DAY ) as date
    FROM
    (SELECT 0 AS num
        UNION ALL SELECT 1
        UNION ALL SELECT 2
        UNION ALL SELECT 3
        UNION ALL SELECT 4
        UNION ALL SELECT 5
        UNION ALL SELECT 6
        UNION ALL SELECT 7
        UNION ALL SELECT 8
        UNION ALL SELECT 9) n1,
    (SELECT 0 AS num
        UNION ALL SELECT 1
        UNION ALL SELECT 2
        UNION ALL SELECT 3
        UNION ALL SELECT 4
        UNION ALL SELECT 5
        UNION ALL SELECT 6
        UNION ALL SELECT 7
        UNION ALL SELECT 8
        UNION ALL SELECT 9) n2,
    (SELECT 0 AS num
        UNION ALL SELECT 1
        UNION ALL SELECT 2
        UNION ALL SELECT 3
        UNION ALL SELECT 4
        UNION ALL SELECT 5
        UNION ALL SELECT 6
        UNION ALL SELECT 7
        UNION ALL SELECT 8
        UNION ALL SELECT 9) n3,
    (SELECT 0 AS num
        UNION ALL SELECT 1
        UNION ALL SELECT 2
        UNION ALL SELECT 3
        UNION ALL SELECT 4
        UNION ALL SELECT 5
        UNION ALL SELECT 6
        UNION ALL SELECT 7
        UNION ALL SELECT 8
        UNION ALL SELECT 9) n4,
    (SELECT 0 AS num
        UNION ALL SELECT 1
        UNION ALL SELECT 2
        UNION ALL SELECT 3
        UNION ALL SELECT 4
        UNION ALL SELECT 5
        UNION ALL SELECT 6
        UNION ALL SELECT 7
        UNION ALL SELECT 8
        UNION ALL SELECT 9) n5
) a
WHERE date > '2011-01-02 00:00:00.000' AND date < NOW()
ORDER BY date
Nach dem Login kopieren

Mit dieser Abfrage können Sie eine Folge von Datumsangaben innerhalb eines angegebenen Bereichs generieren und diese in die Ergebnisse einbeziehen, auch wenn es für diese Datumsangaben keine Entsprechung gibt Datensätze in Ihrer Datenbank.

Das obige ist der detaillierte Inhalt vonWie rufe ich alle Daten innerhalb eines Bereichs ab, einschließlich der Daten mit null Datensätzen in MySQL?. 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