sql >> Databasteknik >  >> RDS >> Mysql

SQL:ta bort dubbletter av värden från ett urval baserat på 2 fält

För just denna fråga max(language) bör fungera eftersom d är mindre än e.

EDIT (Lösning som inte går sönder):

Lägg till max(case language when 'default' then 0 else 1 end)

Edit2 (Ännu bättre):

Lägg till max(case language when 'english' then 1 else 0 end) så du får inte ens dubbelvärden om du lägger till fler språk till din in() avsnitt

EDIT Nr. 2:

Som jag lovade, här är jag med ett nytt måndagsmorgonsinne och fick rätt fråga för dina behov :-)

Prova

SELECT value,
       CASE group_concat(language)
         WHEN 'default' then 'default'
         ELSE LTRIM(REPLACE(group_concat(language SEPARATOR ' '),'default',''))
       END as language,
       externID
FROM demo
WHERE externID = 10
AND   language in ('default','english')
GROUP BY value;

Förklaring:GROUP_CONCAT och LTRIM




  1. Ansluter till Informix (IDS12 DB) i IRI Workbench

  2. Beräkna skillnaden mellan två datumtider

  3. PHP:mysql_fetch_array() förväntar sig att parameter 1 är resurs, boolesk given

  4. Rapportera mer detaljerat än vanligt – Microsoft Access