Heim >Datenbank >MySQL-Tutorial >Wie sortiere ich MySQL-Ergebnisse nach der in der IN()-Klausel angegebenen Reihenfolge?

Wie sortiere ich MySQL-Ergebnisse nach der in der IN()-Klausel angegebenen Reihenfolge?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-12 17:28:01741Durchsuche

How to Sort MySQL Results by the Order Specified in the IN() Clause?

MySQL: Ergebnisse nach der Reihenfolge der IN()-Spezifikation sortieren

Beim Abrufen von Daten mit einer IN()-Klausel die Reihenfolge beibehalten Die angegebenen Werte können die Lesbarkeit und Benutzerfreundlichkeit der Ausgabe verbessern. In diesem Artikel wird eine Lösung untersucht, um die Ergebnisse basierend auf der Wertefolge innerhalb der Funktion IN() zu sortieren.

Betrachten Sie die folgende Abfrage:

SELECT id, name FROM mytable WHERE name IN ('B', 'A', 'D', 'E', 'C');

Diese Abfrage gibt die folgende Ausgabe zurück, wobei Die Reihenfolge der Zeilen stimmt nicht mit der Reihenfolge in der IN()-Klausel überein:

| id | Name |
^--------^---------^
| 5 | B |
| 6 | B |
| 1 | D |
| 15 | E |
| 17 | E |
| 9 | C |
| 18 | C |

Um die Ergebnisse in der in der IN()-Klausel angegebenen Reihenfolge zu sortieren, können wir die FIELD-Funktion verwenden. Die FIELD-Funktion nimmt einen Wert als erstes Argument und gibt die Position dieses Werts in der verbleibenden Liste von Argumenten zurück.

Die folgende Abfrage verwendet die FIELD-Funktion, um die Ergebnisse basierend auf der Position des „Namens“ zu sortieren. Spaltenwerte in der Liste ('B', 'A', 'D', 'E', 'C'):

SELECT id, name
FROM mytable
WHERE name IN ('B', 'A', 'D', 'E', 'C')
ORDER BY FIELD(name, 'B', 'A', 'D', 'E', 'C')

Diese Abfrage gibt die folgende Ausgabe zurück:

| id | Name |
^--------^---------^
| 5 | B |
| 6 | B |
| 1 | D |
| 15 | E |
| 17 | E |
| 9 | C |
| 18 | C |

Wie Sie sehen können, sind die Zeilen jetzt in der Reihenfolge angeordnet, die ursprünglich in der IN()-Klausel angegeben wurde.

Das obige ist der detaillierte Inhalt vonWie sortiere ich MySQL-Ergebnisse nach der in der IN()-Klausel angegebenen Reihenfolge?. 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