Heim > Datenbank > MySQL-Tutorial > Wie kann ich kombinierte MySQL-Abfrageergebnisse von UNION mithilfe einer Rangspalte sortieren?

Wie kann ich kombinierte MySQL-Abfrageergebnisse von UNION mithilfe einer Rangspalte sortieren?

Susan Sarandon
Freigeben: 2025-01-11 11:47:43
Original
625 Leute haben es durchsucht

How Can I Sort Combined MySQL Query Results from UNION Using a Rank Column?

Die kombinierte Verwendung von UNION und ORDER BY in MySQL-Abfragen, um eine sortierte Ergebnisgruppierung zu erreichen

In MySQL können wir mehrere Abfragen mit dem UNION-Operator kombinieren, um ihre Ergebnisse zusammenzuführen. Bei der Bearbeitung solcher Abfragen kann es sinnvoll sein, die zusammengefassten Ergebnisse gezielt zu sortieren.

Angenommen, Sie möchten verschiedene Arten von Datensätzen aus einer einzigen Tabelle basierend auf der Entfernung von einem Standort extrahieren. Nehmen wir an, Sie haben die folgenden drei Abfragen:

<code class="language-sql">SELECT id, add_date
FROM Table
WHERE distance = 0;

SELECT id, add_date
FROM Table
WHERE distance < 5;

SELECT id, add_date
FROM Table
WHERE distance BETWEEN 5 AND 15;</code>
Nach dem Login kopieren

Nachdem Sie diese Abfragen mit UNION kombiniert haben, möchten Sie möglicherweise die Ergebnisse nach jeder Überschrift sortieren, z. B. „Genaue Ergebnisse“, „Ergebnisse innerhalb von 5 Kilometern“ usw.

Dazu können wir für jede SELECT-Anweisung eine Pseudospalte namens „Rank“ verwenden. Diese Spalte enthält den Rang jedes Datensatzes innerhalb seiner spezifischen Gruppierung, sodass wir danach sortieren können, bevor wir andere Sortierkriterien anwenden.

Hier ist ein Beispiel, wie Sie dies erreichen können:

<code class="language-sql">SELECT *
FROM (
    SELECT 1 AS Rank, id, add_date
    FROM Table
    WHERE distance = 0
    UNION ALL
    SELECT 2 AS Rank, id, add_date
    FROM Table
    WHERE distance < 5
    UNION ALL
    SELECT 3 AS Rank, id, add_date
    FROM Table
    WHERE distance BETWEEN 5 AND 15
) AS combined_results
ORDER BY Rank, id, add_date;</code>
Nach dem Login kopieren

In dieser Abfrage werden die Ergebnisse zunächst nach der Spalte „Rang“ sortiert, in der Datensätze nach Suchtyp gruppiert werden (Genau, Innerhalb von 5 km oder Innerhalb von 5–15 km). Innerhalb jeder Gruppierung werden die Datensätze nach „id“ und „add_date“ sortiert.

Das obige ist der detaillierte Inhalt vonWie kann ich kombinierte MySQL-Abfrageergebnisse von UNION mithilfe einer Rangspalte sortieren?. 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