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

MySQL viser resultaterne i alfabetisk rækkefølge, men viser et bestemt element før den alfabetisk sorterede liste

bare lav en betinget ordre ved med en sagsfremstilling som sådan

QUERY:

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

EDIT:

hvis du vil bestille efter flere felter først og derefter resten, kan du gøre det sådan her.

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


  1. CodeIgniter-fejl - kan ikke oprette forbindelse til databasen ved hjælp af de angivne indstillinger

  2. Sådan indsætter du et linjeskift i en SQL Server VARCHAR/NVARCHAR streng

  3. JPA - EclipseLink - Sådan ændres standardskema

  4. Refleksion i PLSQL?