Heim >Datenbank >MySQL-Tutorial >Wie kann ich SQL-Abfrageergebnisse nach mehreren Werten in einer bestimmten Reihenfolge sortieren?
Mehrere Werte in einer bestimmten Reihenfolge sortieren
In SQL können Abfrageergebnisse nach mehreren Werten sortiert werden, jedoch nur, wenn diese Werte in der ORDER BY-Klausel enthalten sein müssen. Wenn Sie versuchen, nach mehreren Werten zu sortieren, die nicht in der ORDER BY-Klausel enthalten sind (wie im bereitgestellten Beispiel), gibt die Abfrage keine Ergebnisse zurück.
Um mehrere Werte in einer bestimmten Reihenfolge zu sortieren, wird empfohlen, die CASE-Anweisung zu verwenden:
<code class="language-sql">... WHERE x_field IN ('f', 'p', 'i', 'a') ... ORDER BY CASE x_field WHEN 'f' THEN 1 WHEN 'p' THEN 2 WHEN 'i' THEN 3 WHEN 'a' THEN 4 ELSE 5 -- 对IN子句中未包含的值的回退。例如:x_field = 'b' END, id</code>
In diesem Beispiel weist die CASE-Anweisung jedem Wert in der x_field-Spalte eine numerische Priorität zu („f“ ist 1, „p“ ist 2 usw.). Die Ergebnisse werden dann nach dieser Priorität und dann nach der ID-Spalte sortiert, um eine eindeutige Sortierung innerhalb jeder Prioritätsstufe sicherzustellen.
Mithilfe der CASE-Anweisung können Sie die gewünschte Sortierreihenfolge für mehrere Werte festlegen. In diesem Beispiel werden die Ergebnisse in der Reihenfolge „f“, „p“, „i“ und „a“ sortiert, wie in der CASE-Anweisung angegeben.
Das obige ist der detaillierte Inhalt vonWie kann ich SQL-Abfrageergebnisse nach mehreren Werten in einer bestimmten Reihenfolge sortieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!