sql >> Base de Datos >  >> RDS >> Mysql

SQL:eliminar valores duplicados de una selección basada en 2 campos

Para esta pregunta en particular max(language) debería funcionar porque d es menor que e.

EDITAR (Solución que no se romperá):

Agregue max(case language when 'default' then 0 else 1 end)

Edit2 (Aún mejor):

Agregar max(case language when 'english' then 1 else 0 end) por lo que ni siquiera obtendrá valores duplicados si agrega más idiomas a su in() sección

EDITAR Nro. 2:

Como prometí, aquí estoy con una nueva mente fresca de lunes por la mañana y obtuve la consulta adecuada para sus necesidades :-)

Prueba

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;

Explicación:GROUP_CONCAT y LTRIM