Abfrageergebnisse in vordefinierter Reihenfolge zurückgeben
Beim Ausführen einer SELECT-Anweisung ist es oft wünschenswert, Datensätze in einer bestimmten Reihenfolge abzurufen. Standardmäßig gibt MySQL jedoch Ergebnisse in einer willkürlichen Reihenfolge basierend auf der internen Organisation der Tabelle zurück.
Um dieses Standardverhalten zu überschreiben und Ergebnisse in einer vordefinierten Reihenfolge zurückzugeben, stellt MySQL eine Methode bereit, die die Funktion FIND_IN_SET() verwendet. Diese Funktion benötigt zwei Argumente: eine Suchzeichenfolge und eine Reihe von Werten. Es gibt die Position der Suchzeichenfolge innerhalb der Menge zurück oder 0, wenn die Zeichenfolge nicht gefunden wird.
Durch die Nutzung von FIND_IN_SET() ist es möglich, eine SELECT-Anweisung auszuführen und die gewünschte Reihenfolge der Ergebnisse anzugeben. Um beispielsweise Datensätze mit den IDs 7, 2, 5, 9 und 8 in dieser bestimmten Reihenfolge abzurufen:
SELECT id FROM table WHERE id IN (7, 2, 5, 9, 8) ORDER BY FIND_IN_SET(id, "7,2,5,9,8");
Diese Abfrage gibt das folgende Ergebnis zurück:
id --- 7 2 5 9 8
Beachten Sie Folgendes Die ID-Werte werden in der im zweiten Argument von FIND_IN_SET() angegebenen Reihenfolge zurückgegeben, unabhängig von der Reihenfolge, in der sie in der WHERE-Klausel erscheinen.
Diese Technik bietet eine leistungsstarke Möglichkeit, die Reihenfolge der Abfrageergebnisse zu steuern , auch wenn die zugrunde liegende Tabelle keine explizit definierte Sortierreihenfolge hat.
Das obige ist der detaillierte Inhalt vonWie kann ich mit FIND_IN_SET() MySQL-Abfrageergebnisse in einer vordefinierten Reihenfolge zurückgeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!