Heim  >  Artikel  >  Datenbank  >  Wie kann ich mit FIND_IN_SET() MySQL-Abfrageergebnisse in einer vordefinierten Reihenfolge zurückgeben?

Wie kann ich mit FIND_IN_SET() MySQL-Abfrageergebnisse in einer vordefinierten Reihenfolge zurückgeben?

Patricia Arquette
Patricia ArquetteOriginal
2024-10-31 06:34:02441Durchsuche

How can I return MySQL query results in a predefined order using FIND_IN_SET()?

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!

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