sql >> Database >  >> RDS >> Mysql

MySQL group_concat() bestellen op basis van case-statementwaarden

U kunt dit bereiken door te bestellen op kolompositie in plaats van kolomnaam .

Voor jouw geval ORDER BY 1 zou moeten werken.

SELECT 
  things.id
  ,group_concat(DISTINCT 
    CASE
    WHEN things.name <> 'United States' THEN 'Non-US'
    WHEN things.name IS NULL THEN 'Unknown'
    ELSE things.name
    END
  ORDER BY 1 SEPARATOR ', ')
FROM things
GROUP BY things.id


  1. Proactieve SQL Server Health Checks, Deel 2:Onderhoud

  2. Optimaliseer MySql-query:te traag bij het bestellen

  3. Hoe NULL retourneren als het resultaat leeg is?

  4. De Percona Audit Log-plug-in gebruiken voor databasebeveiliging