Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

GROUP_CONCAT altera o pedido GROUP BY


Sim, é normal.

Você não deve confiar, nunca, na ordem em que os campos desagrupados e desagregados são retornados.

GROUP_CONCAT tem seu próprio ORDER BY cláusula que o otimizador leva em consideração e pode alterar a ordem em que analisa os registros.

Para retornar o primeiro registro junto com GROUP_CONCAT , usa isto:
SELECT  m.*, gc
FROM    (
        SELECT  id, MIN(date) AS mindate, GROUP_CONCAT(tags) AS gc
        FROM    myview
        GROUP BY
                id
        ) md
JOIN    m.*
ON      m.id = md.id
        AND m.date = md.mindate