Heim  >  Artikel  >  Datenbank  >  Wie ordne ich Ergebnisse in einer MySQL-„IN“-Klausel an?

Wie ordne ich Ergebnisse in einer MySQL-„IN“-Klausel an?

Susan Sarandon
Susan SarandonOriginal
2024-11-03 01:49:29456Durchsuche

How to Order Results in a MySQL

Ergebnisse nach Werten in der MySQL-„IN“-Klausel sortieren

In einer „IN“-Klauselanweisung in MySQL werden Ergebnisse normalerweise in einer zurückgegeben ungeordnete Weise. Es gibt jedoch Möglichkeiten, die Ergebnisse basierend auf den in der Klausel angegebenen Werten zu ordnen.

Verwendung der FIELD()-Funktion

Ein Ansatz besteht darin, die FIELD( )-Funktion, die die Position eines angegebenen Werts in einer Liste zurückgibt. Mithilfe dieser Funktion können Sie die Ergebnisse manuell in der gewünschten Reihenfolge sortieren. Die Syntax lautet wie folgt:

ORDER BY FIELD(column, value1, value2, ..., valueN)

Beispiel

Betrachten Sie das folgende Beispiel:

SELECT * FROM account_records
WHERE id IN (5,2,6,8,12,1)
ORDER BY FIELD(id,5,2,6,8,12,1);

In dieser Abfrage werden die Ergebnisse sein wird in der in den FIELD()-Funktionsargumenten angegebenen Reihenfolge zurückgegeben, bei denen es sich um die Werte in der „IN“-Klausel handelt.

Alternativ: Verwendung einer temporären Tabelle

Wie erwähnt , können Sie auch die Erstellung einer temporären Tabelle in Betracht ziehen, um die gewünschte Sortierung zu erreichen. Die Schritte würden umfassen:

  1. Erstellen einer temporären Tabelle mit den Werten aus der „IN“-Klausel.
  2. Verknüpfen der Haupttabelle mit der temporären Tabelle in der „id“-Spalte.
  3. Sortieren der Ergebnisse basierend auf den Werten in der temporären Tabelle.

Dieser Ansatz kann zwar eine vielseitigere Lösung bieten, ist jedoch im Vergleich zur einfachen Verwendung der FIELD()-Funktion weniger effizient Sortieranforderungen.

Das obige ist der detaillierte Inhalt vonWie ordne ich Ergebnisse in einer MySQL-„IN“-Klausel an?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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