Heim >Datenbank >MySQL-Tutorial >Wie kann ich SQL-Abfrageergebnisse nach mehreren Werten in einer bestimmten Reihenfolge sortieren?

Wie kann ich SQL-Abfrageergebnisse nach mehreren Werten in einer bestimmten Reihenfolge sortieren?

Linda Hamilton
Linda HamiltonOriginal
2025-01-08 18:08:42247Durchsuche

How Can I Order SQL Query Results by Multiple Values in a Specific Sequence?

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!

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