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>
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>
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!