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