Heim  >  Artikel  >  Datenbank  >  Wie ordne ich Zeilen basierend auf der Reihenfolge in einer WHERE IN-Klausel an?

Wie ordne ich Zeilen basierend auf der Reihenfolge in einer WHERE IN-Klausel an?

DDD
DDDOriginal
2024-10-27 12:40:03399Durchsuche

How to Order Rows Based on the Order in a WHERE IN Clause?

Reihen nach WHERE IN-Klausel unter Verwendung von ORDER BY FIELD anordnen

In Datenbankabfragen können Sie mit der WHERE IN-Klausel Daten basierend auf filtern eine spezifizierte Liste von Werten. Standardmäßig haben die zurückgegebenen Zeilen jedoch möglicherweise nicht die in der Klausel angegebene Reihenfolge.

Um die Zeilen gemäß der in der WHERE IN-Klausel angegebenen Reihenfolge zu ordnen, können Sie ORDER BY FIELD( ) Funktion. Diese Funktion benötigt zwei Argumente:

  • Das Feld, nach dem Sie die Zeilen sortieren möchten (in diesem Fall das ID-Feld)
  • Eine durch Kommas getrennte Liste von Werten aus dem WHERE IN Klausel

Zum Beispiel bei der folgenden Abfrage:

SELECT *
FROM table
WHERE id IN (118, 17, 113, 23, 72);

Die die Zeilen in aufsteigender Reihenfolge nach ID zurückgibt, können Sie die Funktion ORDER BY FIELD() verwenden, um die zu erhalten Zeilen in der in der WHERE IN-Klausel angegebenen Reihenfolge:

SELECT *
FROM table
WHERE id IN (118, 17, 113, 23, 72)
ORDER BY FIELD(id, 118, 17, 113, 23, 72)

In dieser Abfrage sortiert die Funktion ORDER BY FIELD() die Zeilen nach dem ID-Feld, jedoch in der spezifischen Reihenfolge 118, 17, 113 , 23 und 72, wie in der WHERE IN-Klausel angegeben.

Mit dieser Technik können Sie Zeilen einfach entsprechend der in Ihrer WHERE IN-Klausel angegebenen Reihenfolge anordnen und so sicherstellen, dass sie in der gewünschten Reihenfolge zurückgegeben werden.

Das obige ist der detaillierte Inhalt vonWie ordne ich Zeilen basierend auf der Reihenfolge in einer WHERE 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