Heim >Datenbank >MySQL-Tutorial >Wie kann ich die Zeilenreihenfolge in bedingten Abfragen mithilfe der „WHERE IN'-Klausel beibehalten?

Wie kann ich die Zeilenreihenfolge in bedingten Abfragen mithilfe der „WHERE IN'-Klausel beibehalten?

Barbara Streisand
Barbara StreisandOriginal
2024-10-27 02:39:03566Durchsuche

How Can I Preserve Row Order in Conditional Queries Using `WHERE IN` Clause?

Beibehalten der Zeilenreihenfolge in bedingten Abfragen

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!

Stellungnahme:
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