Heim > Datenbank > MySQL-Tutorial > Wie behalte ich die Zeilenreihenfolge in SQL-Abfragen mit der WHERE IN-Klausel bei?

Wie behalte ich die Zeilenreihenfolge in SQL-Abfragen mit der WHERE IN-Klausel bei?

Barbara Streisand
Freigeben: 2024-10-30 03:34:28
Original
1017 Leute haben es durchsucht

How to Maintain Row Order in SQL Queries with WHERE IN Clause?

Zeilenreihenfolge mit WHERE IN-Klausel steuern

In einer SQL-Anweisung (Structured Query Language), die die WHERE IN-Klausel verwendet, entsprechen die zurückgegebenen Zeilen möglicherweise nicht immer der Reihenfolge innerhalb der Klausel angegeben.

Beibehalten der Zeilenreihenfolge mit der FIELD()-Funktion

Um dies zu beheben, kann man die FIELD()-Funktion in Verbindung mit der ORDER BY-Klausel verwenden. Die Funktion FIELD() weist jeder Zeile basierend auf der angegebenen Reihenfolge der Werte innerhalb der IN-Klausel eine Position zu. Indem man die Zeilen entsprechend dieser zugewiesenen Position anordnet, kann man die ursprüngliche Reihenfolge aus der WHERE IN-Klausel beibehalten.

Betrachten Sie beispielsweise die folgende SQL-Abfrage:

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

Diese Abfrage gibt die zurück Zeilen in aufsteigender Reihenfolge basierend auf der ID-Spalte, wobei die in der WHERE IN-Klausel angegebene Reihenfolge ignoriert wird. Um die Zeilen in der durch die IN-Klausel angegebenen Reihenfolge zu erhalten, führen Sie die folgende Abfrage aus:

SELECT *
FROM table
WHERE id IN (118, 17, 113, 23, 72)
ORDER BY FIELD(id, 118, 17, 113, 23, 72);
Nach dem Login kopieren

In dieser Abfrage ordnet die ORDER BY-Klausel die Zeilen entsprechend der Reihenfolge der Werte an (118, 17, 113, 23, 72), die in der Funktion FIELD() angegeben sind. Daher halten sich die zurückgegebenen Zeilen an die in der WHERE IN-Klausel definierte Reihenfolge.

Das obige ist der detaillierte Inhalt vonWie behalte ich die Zeilenreihenfolge in SQL-Abfragen mit der WHERE IN-Klausel bei?. 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