Reihenfolge in MySQL „IN“-Abfrage beibehalten
Bei Verwendung des „IN“-Operators zum Filtern von Ergebnissen in einer MySQL-Abfrage wird die Reihenfolge von Die Ergebnisse stimmen möglicherweise nicht unbedingt mit der Reihenfolge der in der „IN“-Klausel angegebenen Werte überein. Dies liegt daran, dass MySQL die Reihenfolge der Ergebnisse standardmäßig nicht garantiert.
Um die Reihenfolge der Ergebnisse in einer „IN“-Abfrage beizubehalten, können Sie die folgenden Ansätze verwenden:
Verwenden der FIELD-Funktion
Mit der FIELD-Funktion kann die gewünschte Reihenfolge der Ergebnisse angegeben werden. Es verwendet eine durch Kommas getrennte Liste von Werten als zweites Argument und gibt die Position des übereinstimmenden Werts in der Liste zurück. Die folgende Abfrage würde beispielsweise Ergebnisse in der in der „IN“-Klausel angegebenen Reihenfolge zurückgeben:
SELECT * FROM foo f WHERE f.id IN (2, 3, 1) ORDER BY FIELD(f.id, 2, 3, 1);
Die Argumentliste für FIELD kann eine variable Länge haben, sodass Sie so viele Werte wie nötig angeben können.
Hinweis:
Die ORDER BY FIELD-Methode funktioniert für einfache Abfragen, bei denen die Werte in der „IN“-Klausel bekannt sind Vorauszahlung. Wenn die Werte jedoch dynamisch sind oder aus einer anderen Datenquelle abgerufen werden, ist diese Methode möglicherweise nicht geeignet.
Das obige ist der detaillierte Inhalt vonWie kann ich die Reihenfolge der Ergebnisse in den „IN'-Abfragen von MySQL garantieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!