Heim > Datenbank > MySQL-Tutorial > Wie definiere ich mit FIELD() eine benutzerdefinierte Sortierreihenfolge in MySQL?

Wie definiere ich mit FIELD() eine benutzerdefinierte Sortierreihenfolge in MySQL?

Mary-Kate Olsen
Freigeben: 2024-12-27 03:59:10
Original
325 Leute haben es durchsucht

How to Define a Custom Sorting Order in MySQL Using FIELD()?

Daten mit benutzerdefinierter Reihenfolge in MySQL anordnen

In MySQL ist das Definieren einer benutzerdefinierten Sortierreihenfolge mit der Funktion FIELD() möglich. Diese Funktion wertet den Wert eines Feldes anhand einer Werteliste aus und gibt einen numerischen Wert basierend auf der Position des Werts in der Liste zurück. Durch die Nutzung dieser Funktion können Sie die gewünschte Reihenfolge für bestimmte Werte angeben.

Beachten Sie die folgende Tabelle:

ID    Language    Text
0    ENU         a
0    JPN         b
0    DAN         c
1    ENU         d
1    JPN         e
1    DAN         f
Nach dem Login kopieren

Um die Zeilen nach Sprache und aufsteigender ID sortiert zurückzugeben, wobei ENU die ist erste Priorität, gefolgt von JPN und dann DAN, können Sie die folgende ORDER BY-Klausel verwenden:

ORDER BY FIELD(Language,'ENU','JPN','DAN'), ID
Nach dem Login kopieren

Diese Abfrage weist MySQL an, zu sortieren die Ergebnisse nach dem Feld „Sprache“, wobei die Werte „ENU“, „JPN“ und „DAN“ als benutzerdefinierte Sortierreihenfolge verwendet werden. Zeilen mit dem Wert „ENU“ im Feld „Sprache“ werden zuerst angezeigt, gefolgt von denen mit „JPN“ und schließlich denen mit „DAN“. Innerhalb jeder Sprachgruppe werden die Zeilen nach aufsteigender ID sortiert.

Es ist wichtig zu beachten, dass:

  • Die FIELD()-Funktion kann die Portabilität Ihres SQL wie bei anderen DBMS einschränken Unterstützt dies möglicherweise nicht.
  • Für größere Listen mit zu sortierenden Werten ist es im Allgemeinen effizienter, eine separate Tabelle mit einer Sortierreihenfolgespalte zu erstellen und diese mit Ihren Abfragen zu verknüpfen zur Bestellung.

Das obige ist der detaillierte Inhalt vonWie definiere ich mit FIELD() eine benutzerdefinierte Sortierreihenfolge in MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage