sql >> Database >  >> RDS >> Mysql

MySQL geeft resultaten alfabetische volgorde weer, maar toont een bepaald item vóór de alfabetisch gesorteerde lijst

doe gewoon een voorwaardelijke bestelling door met een case-statement zoals zo

QUERY:

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

BEWERKEN:

als je eerst op meerdere velden wilt bestellen en dan de rest, kun je dat zo doen.

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. Hoe categorie en subcategorieën ontwerpen in MySQL?

  2. Hoe SECOND() werkt in MariaDB

  3. Meerdere keren dezelfde parameterwaarde toewijzen in pdo execute

  4. Ontleden SELECT-clausule van SQL-query's in een PHP-array