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!