sql >> Databáze >  >> RDS >> Mysql

SQL:odstranění duplicitních hodnot z výběru na základě 2 polí

Pro tuto konkrétní otázku max(language) by mělo fungovat, protože d je menší než e.

UPRAVIT (Řešení, které se nerozbije):

Přidejte max(case language when 'default' then 0 else 1 end)

Edit2 (ještě lepší):

Přidejte max(case language when 'english' then 1 else 0 end) takže ani nezískáte duplicitní hodnoty, pokud do in() přidáte další jazyky sekce

EDIT Č. 2:

Jak jsem slíbil, jsem zde s čerstvou pondělní ranní myslí a dostal jsem správný dotaz pro vaše potřeby :-)

Zkuste

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;

Vysvětlení:GROUP_CONCAT a LTRIM




  1. Použití poradců pro zálohování databáze k automatizaci úloh údržby

  2. django.db.utils.OperationalError:(1045:Přístup odepřen pro uživatele 'root'@'localhost' (pomocí hesla:NE)

  3. Jak mám předat název tabulky do uloženého procesu?

  4. MySQL REPLACE v automaticky inkrementovaném řádku