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.
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);
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);
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!