Heim >Datenbank >MySQL-Tutorial >Wie kann ich die Ergebnisse innerhalb der einzelnen Abschnitte sortieren, wenn ich UNION in MySQL verwende?
Sortierte Ergebnisse mit UNION und ORDER BY von MySQL beherrschen
Das Kombinieren von Daten aus mehreren SELECT
-Anweisungen mit MySQLs UNION
ist leistungsstark, die Aufrechterhaltung der Sortierung einzelner Abschnitte kann jedoch schwierig sein. In dieser Anleitung wird gezeigt, wie Sie Ergebnisse in jedem Abschnitt basierend auf einer bestimmten Spalte (wie „id“ oder „add_date“) sortieren und dabei die logische Gruppierung Ihrer UNION
-Abfrage beibehalten.
Ihr Szenario umfasst das Abrufen von Daten basierend auf verschiedenen Kriterien aus einer einzelnen Tabelle und das anschließende Konsolidieren der Ergebnisse mithilfe von UNION
unter verschiedenen Überschriften. Hier ist die Lösung:
Fügen Sie zu jeder SELECT
-Anweisung eine „Ranking“-Spalte (eine Pseudo-Spalte) ein. Dieser numerische Wert bestimmt die Anzeigereihenfolge innerhalb jedes Abschnitts.
<code class="language-sql">SELECT 1 AS Rank, id, add_date FROM Table UNION ALL SELECT 2 AS Rank, id, add_date FROM Table WHERE distance < ...</code>
Als nächstes kapseln Sie diese kombinierte Abfrage in einer Unterabfrage. Die Hauptabfrage verwendet dann diese Unterabfrage als Datenquelle und sortiert zuerst nach der Spalte „Rang“ und dann nach den von Ihnen gewählten Sortierkriterien (z. B. „id“ oder „add_date“).
<code class="language-sql">SELECT * FROM ( SELECT 1 AS Rank, id, add_date FROM Table UNION ALL SELECT 2 AS Rank, id, add_date FROM Table WHERE distance < ... ) AS Subquery ORDER BY Rank, id; -- Or ORDER BY Rank, add_date;</code>
Diese Methode gewährleistet eine genaue Sortierung innerhalb jedes durch Ihren UNION
Vorgang definierten Abschnitts und liefert einen sauberen und organisierten Ergebnissatz.
Das obige ist der detaillierte Inhalt vonWie kann ich die Ergebnisse innerhalb der einzelnen Abschnitte sortieren, wenn ich UNION in MySQL verwende?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!