Heim  >  Artikel  >  Datenbank  >  Wie rufe ich Zeilen in einer bestimmten Reihenfolge mithilfe der WHERE IN-Klausel ab?

Wie rufe ich Zeilen in einer bestimmten Reihenfolge mithilfe der WHERE IN-Klausel ab?

DDD
DDDOriginal
2024-10-26 15:31:30229Durchsuche

How to Retrieve Rows in a Specific Order Using the WHERE IN Clause?

Zeilen in der angegebenen Reihenfolge mithilfe der WHERE IN-Klausel abrufen

Beim Abfragen von Daten mithilfe der WHERE IN-Klausel werden die Zeilen normalerweise in aufsteigender Reihenfolge zurückgegeben Reihenfolge basierend auf dem in der Klausel angegebenen Feld. Es kann jedoch Fälle geben, in denen Sie die Zeilen in der genauen Reihenfolge abrufen müssen, in der sie in der WHERE-Klausel erscheinen.

Dies kann durch die Verwendung der Funktion ORDER BY FIELD erreicht werden. Die FIELD-Funktion gibt die Position eines angegebenen Werts in einer durch Kommas getrennten Liste zurück. Mithilfe dieser Funktion können Sie die Zeilen entsprechend der Reihenfolge der in der WHERE IN-Klausel aufgeführten Werte sortieren.

Beispiel:

Bedenken Sie die folgende Abfrage:

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

Diese Abfrage gibt die nach ID geordneten Zeilen in aufsteigender Reihenfolge zurück. Um die Zeilen in der in der IN-Klausel angegebenen Reihenfolge abzurufen, können wir die Abfrage wie folgt ändern:

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

Die Funktion ORDER BY FIELD benötigt zwei Parameter:

  • Das Feld zu sortieren
  • Eine durch Kommas getrennte Liste von Werten in der Reihenfolge, in der sie im Ergebnis erscheinen sollen

In diesem Fall sortieren wir die Zeilen nach dem ID-Feld und dem Werte in der durch Kommas getrennten Liste geben die Reihenfolge an, in der die Zeilen zurückgegeben werden sollen.

Mit der Funktion ORDER BY FIELD können Sie sicherstellen, dass die Zeilen genau in der in der WHERE IN-Klausel angegebenen Reihenfolge zurückgegeben werden .

Das obige ist der detaillierte Inhalt vonWie rufe ich Zeilen in einer bestimmten Reihenfolge mithilfe der WHERE IN-Klausel ab?. 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