Heim >Datenbank >MySQL-Tutorial >Wie kann ich die Reihenfolge in MySQL IN-Abfragen garantieren?
Bewahrung der Reihenfolge in MySQL-"IN"-Abfragen
In MySQL stimmt die Reihenfolge der Zeilen in einem "IN"-Abfrageergebnis normalerweise mit der überein Primärschlüssel oder ein beliebiger definierter Index. Dieses Verhalten entspricht jedoch möglicherweise nicht der angegebenen Reihenfolge in der Abfrage. Um die gewünschte Reihenfolge beizubehalten, ziehen Sie die folgende Lösung in Betracht:
Verwenden von FIELD() für benutzerdefinierte Reihenfolge:
Die Funktion FIELD() wertet die Position eines bestimmten Werts in aus eine durch Kommas getrennte Liste von Werten. Durch die Verwendung dieser Funktion in der ORDER BY-Klausel können Sie die gewünschte Reihenfolge der Ergebnisse angeben. Zum Beispiel:
SELECT * FROM foo f WHERE f.id IN (2, 3, 1) ORDER BY FIELD(f.id, 2, 3, 1);
In dieser modifizierten Abfrage stellt die Argumentliste von FIELD() die gewünschte Reihenfolge dar: 2, 3 und 1. Folglich werden die Ergebnisse in der folgenden Reihenfolge angezeigt:
id | name |
---|---|
2 | second |
3 | third |
1 | first |
Im Gegensatz zur ursprünglichen Abfrage garantiert diese Änderung die angegebene Reihenfolge, was eine größere Flexibilität beim Abrufen von Daten aus einer Tabelle bietet und sicherstellt, dass die Ergebnisse mit Ihren übereinstimmen Erwartungen.
Das obige ist der detaillierte Inhalt vonWie kann ich die Reihenfolge in MySQL IN-Abfragen garantieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!