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