Mysql
 sql >> Base de données >  >> RDS >> Mysql

MySQL affiche les résultats par ordre alphabétique mais affiche un élément particulier avant la liste triée par ordre alphabétique

faites simplement un ordre conditionnel par avec une déclaration de cas comme ceci

REQUETE :

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

MODIFIER :

si vous souhaitez d'abord trier par plusieurs champs, puis le reste, vous pouvez le faire comme ceci.

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