Heim >Datenbank >MySQL-Tutorial >Wie ordne ich MySQL-Ergebnisse mithilfe der FIELD-Funktion nach der Reihenfolge der IN()-Klauseln?

Wie ordne ich MySQL-Ergebnisse mithilfe der FIELD-Funktion nach der Reihenfolge der IN()-Klauseln?

Susan Sarandon
Susan SarandonOriginal
2024-11-17 13:59:02657Durchsuche

How to Order MySQL Results by IN() Clause Order using the FIELD Function?

Verwenden der FIELD-Funktion zum Sortieren von Ergebnissen nach IN()-Reihenfolge

In MySQL kann die ORDER BY-Klausel zum Sortieren von Abfrageergebnissen verwendet werden aufsteigende oder absteigende Reihenfolge. Bei Verwendung der IN()-Methode kann es schwierig sein sicherzustellen, dass die Ergebnisse in derselben Reihenfolge zurückgegeben werden wie die IDs in der IN()-Klausel. Glücklicherweise gibt es eine Lösung: die FELD-Funktion.

Die FELD-Funktion benötigt zwei Parameter: einen Feldnamen und eine Werteliste. Es gibt den Index des ersten Werts in der Liste zurück, der mit dem Feldwert übereinstimmt. Die folgende Abfrage würde beispielsweise die Werte 1, 2, 3 für die Spalte „id“ für Zeilen zurückgeben, in denen der Wert 3, 2 oder 1 ist:

SELECT id, FIELD(id, 3, 2, 1) AS ordering FROM table_name;

Um die Ergebnisse nach zu ordnen IN()-Reihenfolge übergeben Sie einfach die IN()-Klauselwerte als zweiten Parameter an die FIELD-Funktion:

SELECT id, FIELD(id, 4, 7, 3, 8, 9) AS ordering FROM table_name;

Dadurch werden die Ergebnisse in der Reihenfolge zurückgegeben angegeben:

4 - Article 4
7 - Article 7
3 - Article 3
8 - Article 8
9 - Article 9

Das obige ist der detaillierte Inhalt vonWie ordne ich MySQL-Ergebnisse mithilfe der FIELD-Funktion nach der Reihenfolge der IN()-Klauseln?. 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