Heim > Datenbank > MySQL-Tutorial > Hauptteil

Wie rufe ich SQL-Abfrageergebnisse in einer vordefinierten Reihenfolge ab, ohne ORDER BY zu verwenden?

DDD
Freigeben: 2024-10-30 04:24:02
Original
234 Leute haben es durchsucht

How to Retrieve SQL Query Results in a Predefined Order Without Using ORDER BY?

Abfrageergebnisse in vordefinierter Reihenfolge zurückgeben

In SQL ist es normalerweise schwierig, Abfrageergebnisse in einer bestimmten Reihenfolge abzurufen, es sei denn, dies wird mithilfe der ORDER angegeben BY-Klausel. In einigen Szenarien ist die ORDER BY-Klausel jedoch möglicherweise nicht anwendbar, beispielsweise wenn versucht wird, Daten in einer vorgegebenen Reihenfolge abzurufen, die ausschließlich auf den Werten eines bestimmten Felds basiert.

Eine kürzliche Diskussion brachte ein Szenario zur Sprache, in dem dies der Fall war Sie möchten die IDs (7, 2, 5, 9 und 8) auswählen und in genau dieser Reihenfolge abrufen, ohne sich auf zusätzliche Kriterien zu verlassen. Die folgenden Abfragen geben beide die Ergebnisse in einer unvorhersehbaren Reihenfolge zurück:

SELECT id FROM table WHERE id in (7,2,5,9,8);
Nach dem Login kopieren
SELECT id FROM table WHERE id in (8,2,5,9,7);
Nach dem Login kopieren

Eine neuartige Lösung wurde durch einen Blogeintrag entdeckt, der dieses Problem elegant angeht:

SELECT id FROM table WHERE id in (7,2,5,9,8) 
ORDER BY FIND_IN_SET(id,"7,2,5,9,8");
Nach dem Login kopieren

Das FIND_IN_SET Die Funktion wird verwendet, um die Position eines angegebenen Werts innerhalb einer bestimmten Menge zurückzugeben. Beispielsweise hat ID 7 die Position 1, ID 2 die Position 2 und so weiter.

Bei der Anwendung der ORDER BY-Klausel mit FIND_IN_SET versteht die ORDER BY-Anweisung die Positionen und ordnet die Ergebnisse effektiv basierend auf den angegebenen Werten. Diese Lösung nutzt einen internen Mechanismus in MySQL, um die gewünschte vorgegebene Reihenfolge zu erreichen.

Es ist erwähnenswert, dass diese Technik eine wertvolle Alternative sein kann, wenn die ORDER BY-Klausel nicht zur Angabe der gewünschten Reihenfolge verwendet werden kann.

Das obige ist der detaillierte Inhalt vonWie rufe ich SQL-Abfrageergebnisse in einer vordefinierten Reihenfolge ab, ohne ORDER BY zu verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage