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
Freigeben: 2025-01-08 18:08:42
Original
187 Leute haben es durchsucht

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>
Nach dem Login kopieren

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!

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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage