sql >> Base de Datos >  >> RDS >> Mysql

MySQL muestra los resultados en orden alfabético pero muestra un elemento en particular antes de la lista ordenada alfabéticamente

solo haga una orden condicional con una declaración de caso como esta

CONSULTA:

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

EDITAR:

si desea ordenar por varios campos primero y luego el resto, puede hacerlo así.

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