Heim >Datenbank >MySQL-Tutorial >Wie kann ich die Zeilenreihenfolge in bedingten Abfragen mithilfe der „WHERE IN'-Klausel beibehalten?
Problem:
Bei Verwendung der WHERE IN-Klausel werden die Zeilen normalerweise geordnet aufsteigend um die in der ORDER BY-Klausel angegebene Spalte. Es gibt jedoch Szenarien, in denen es erwünscht ist, die Reihenfolge der Zeilen wie in der IN-Klausel angegeben beizubehalten.
Lösung:
Um dies zu erreichen, können Sie die verwenden Funktion NACH FELD BESTELLEN. Diese Funktion ordnet die Zeilen basierend auf der in ihren Argumenten angegebenen Reihenfolge neu.
Beispiel:
Betrachten Sie die folgende Abfrage:
SELECT * FROM table WHERE id IN (118, 17, 113, 23, 72);
Diese Abfrage gibt die nach ID aufsteigend sortierten Zeilen zurück. Um die in der IN-Klausel angegebene Reihenfolge der Zeilen beizubehalten, können Sie die folgende modifizierte Abfrage verwenden:
SELECT * FROM table WHERE id IN (118, 17, 113, 23, 72) ORDER BY FIELD(id, 118, 17, 113, 23, 72)
Durch Angabe der gewünschten Reihenfolge als Argumente für die FIELD-Funktion werden die Zeilen entsprechend neu angeordnet bestellen.
Das obige ist der detaillierte Inhalt vonWie kann ich die Zeilenreihenfolge in bedingten Abfragen mithilfe der „WHERE IN'-Klausel beibehalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!