sql >> Databasteknik >  >> RDS >> Mysql

GROUP_CONCAT ändra GROUP BY order

Ja, det är normalt.

Du bör aldrig förlita dig på i vilken ordning ogrupperade och oaggregerade fält returneras.

GROUP_CONCAT har sin egen ORDER BY klausul som optimeraren tar hänsyn till och kan ändra ordningen i vilken posterna analyseras.

För att returnera den första posten tillsammans med GROUP_CONCAT , använd detta:

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


  1. Mysql-frågor - använder join/union etc

  2. Allvarligt fel påträffades under dataläsning

  3. Hur man bäst lagrar användarinformation och användarinloggning och lösenord

  4. Hantera MySQL Long Running Queries