Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL zeigt die Ergebnisse in alphabetischer Reihenfolge an, zeigt jedoch ein bestimmtes Element vor der alphabetisch sortierten Liste

Führen Sie einfach eine bedingte Reihenfolge durch mit einer case-Anweisung wie dieser

ABFRAGE:

SELECT * 
FROM $tableName 
GROUP BY primary_category
ORDER BY 
    CASE primary_category WHEN 'USA' THEN 1 ELSE 2 END ASC,
    primary_category ASC

BEARBEITEN:

Wenn Sie zuerst nach mehreren Feldern und dann nach dem Rest sortieren möchten, können Sie dies so tun.

SELECT * 
FROM $tableName 
GROUP BY primary_category
ORDER BY 
    CASE primary_category 
      WHEN 'USA' THEN 1 --#-- 1 for usa
      WHEN 'China' THEN 2 --#-- 2 for china
      ELSE 3 END ASC, --#-- 3 for anything else
    primary_category ASC