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

GROUP_CONCAT změna objednávky GROUP BY

Ano, je to normální.

Nikdy byste se neměli spoléhat na pořadí, ve kterém jsou vrácena neseskupená a neagregovaná pole.

GROUP_CONCAT má svůj vlastní ORDER BY klauzule, kterou optimalizátor bere v úvahu a může změnit pořadí, ve kterém je analyzuje záznamy.

Chcete-li vrátit první záznam spolu s GROUP_CONCAT , použijte toto:

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. jak načíst data z databáze Oracle pomocí PHP

  2. Migrace z MySQL na PostgreSQL – co byste měli vědět

  3. psycopg2 + pgbouncer. Asynchronní režim s chybou gevent

  4. Mysql::Error:Zadaný klíč byl příliš dlouhý; maximální délka klíče je 1000 bajtů