Heim >Datenbank >MySQL-Tutorial >Wie ordne ich Daten vor der Gruppierung in MySQL an?

Wie ordne ich Daten vor der Gruppierung in MySQL an?

Linda Hamilton
Linda HamiltonOriginal
2024-11-11 18:29:021071Durchsuche

How to Order Data Before Grouping in MySQL?

MySQL-Reihenfolge vor Gruppieren nach

Beim Abrufen von Daten aus einer Datenbank mit MySQL ist es oft wünschenswert, die Ergebnisse in einer bestimmten Reihenfolge zu sortieren . Wenn Sie jedoch die GROUP BY-Klausel zum Gruppieren von Daten verwenden, werden die Ergebnisse normalerweise nach der Gruppierung sortiert, was möglicherweise nicht zum gewünschten Ergebnis führt.

Im bereitgestellten Beispiel zielt die Abfrage darauf ab, den neuesten Beitrag abzurufen für jeden Autor und gruppieren Sie die Ergebnisse, aber die GROUP BY-Klausel führt dazu, dass die Beiträge nach der Gruppierung sortiert werden, was zu falschen Ergebnissen führt.

Um dieses Problem zu beheben, besteht ein alternativer Ansatz darin, eine Unterabfrage zu verwenden, um den neuesten Beitrag zu ermitteln Geben Sie für jeden Autor ein Datum ein, bevor Sie den Gruppenvorgang durchführen. Dies kann mit der folgenden modifizierten Abfrage erreicht werden:

SELECT
    wp_posts.*
FROM
    wp_posts
    JOIN (
        SELECT
            g.post_author,
            MAX(g.post_date) AS post_date
        FROM wp_posts AS g
        WHERE
            g.post_status = 'publish'
            AND g.post_type = 'post'
        GROUP BY g.post_author
    ) AS t
    ON wp_posts.post_author = t.post_author AND wp_posts.post_date = t.post_date
ORDER BY wp_posts.post_date DESC;

Diese Abfrage berechnet zunächst mithilfe einer Unterabfrage das späteste Veröffentlichungsdatum für jeden Autor und speichert es in einer temporären Tabelle t. Anschließend verknüpft es wp_posts mit t, um die Zeilen auszuwählen, die mit den neuesten Postdaten übereinstimmen, und gruppiert die Ergebnisse nach dem Autor. Abschließend werden die Ergebnisse in absteigender Reihenfolge nach dem Postdatum sortiert, um die neuesten Posts für jeden Autor zu erhalten.

Mit diesem Ansatz können Sie sicherstellen, dass die Posts vor dem Gruppieren sortiert werden und so die gewünschten Ergebnisse liefern ohne die Integrität des Gruppierungsvorgangs zu beeinträchtigen.

Das obige ist der detaillierte Inhalt vonWie ordne ich Daten vor der Gruppierung in MySQL an?. 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