Verwenden Sie die SQL IN()-Klausel, um die Reihenfolge aufrechtzuerhalten
Beim Sortieren von Ergebnissen kann es schwierig sein, die Ergebnisse mit der Reihenfolge der in der IN()-Klausel angegebenen Werte konsistent zu halten. Dieses Problem kann mithilfe einer Unterabfrage oder einer temporären Tabelle gelöst werden. Gibt es jedoch eine effizientere Lösung?
In MySQL bietet die Funktion FIELD() eine praktikable Option. Durch die Verwendung der FIELD()-Funktion können Sie die Sortierung basierend auf der Reihenfolge der Werte in der IN()-Klausel direkt manipulieren.
<code class="language-sql">SELECT name, description, ... FROM ... WHERE id IN([ids, 无序]) ORDER BY FIELD(id, [ids, 有序])</code>
Die Funktion FIELD() bestimmt den Index in der bereitgestellten Liste des als erstes Argument übergebenen Werts. Der zurückgegebene Index stellt die Reihenfolge des Werts in der Liste dar.
Zum Beispiel:
<code class="language-sql">FIELD('a', 'a', 'b', 'c') -- 返回 1 FIELD('a', 'c', 'b', 'a') -- 返回 3</code>
Durch die Verwendung der FIELD()-Funktion und die Beibehaltung der entsprechenden Reihenfolge der Werte in der IN()-Klausel und der FIELD()-Funktion können Sie die Reihenfolge der Ergebnisse effektiv mit der gewünschten Reihenfolge in Einklang bringen.
Das obige ist der detaillierte Inhalt vonWie kann ich die Reihenfolge beibehalten, wenn ich die IN()-Klausel von SQL verwende?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!