Heim >Datenbank >MySQL-Tutorial >Wie rufe ich in einer sortierten MySQL-Abfrage zuerst ein bestimmtes Element ab?
Priorisierung eines bestimmten Elements in MySQL -Abfrageergebnissen
Diese Anleitung zeigt, wie alle Datensätze aus einer MySQL -Tabelle (mit friends
und id
enthalten) Spalten abgerufen werden, um sicherzustellen, dass ein bestimmter Freund (z. B. mit name
5) zuerst in den sortierten Ergebnissen erscheint. Wir konzentrieren uns auf MySQL Version 5.1.x. id
-Klausel: ORDER BY
<code class="language-sql">SELECT id, name FROM friends ORDER BY CASE WHEN id = 5 THEN 0 ELSE 1 END, id ASC;</code>Diese Abfrage priorisiert
, indem er ihm einen Wert von 0 in der Anweisung id = 5
zugewiesen hat. Alle anderen IDs erhalten einen Wert von 1 und platzieren CASE
oben effektiv. Die sekundäre id = 5
sortiert dann die verbleibenden Ergebnisse in der aufsteigenden Reihenfolge der ID. ORDER BY id ASC
alternative (weniger effiziente) Methoden:
zwar weniger effizient als die Anweisungsmethode, können Sie mit CASE
: UNION ALL
ein ähnliches Ergebnis erzielen
<code class="language-sql">SELECT id, name FROM friends WHERE id = 5 UNION ALL SELECT id, name FROM friends WHERE id != 5 ORDER BY id ASC;</code>Dieser Ansatz wählt zuerst die spezifische ID aus und wählt dann alle anderen IDs aus und sortiert schließlich das kombinierte Ergebnis. Diese Methode ist jedoch im Allgemeinen langsamer als der Ansatzansatz
, insbesondere bei größeren Datensätzen. CASE
für eine optimale Leistung und Lesbarkeit. Es wird direkt mit der Sortieranforderung innerhalb einer einzelnen Abfrage befasst. CASE
Das obige ist der detaillierte Inhalt vonWie rufe ich in einer sortierten MySQL-Abfrage zuerst ein bestimmtes Element ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!