Mysql
 sql >> Database >  >> RDS >> Mysql

MySQL visualizza i risultati in ordine alfabetico ma mostra un elemento particolare prima dell'elenco in ordine alfabetico

basta fare un ordine condizionale con un'istruzione case in questo modo

DOMANDA:

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

MODIFICA:

se vuoi ordinare prima per più campi e poi per il resto puoi farlo in questo modo.

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