Ja, das ist normal.
Sie sollten sich niemals auf die Reihenfolge verlassen, in der nicht gruppierte und nicht aggregierte Felder zurückgegeben werden.
GROUP_CONCAT
hat einen eigenen ORDER BY
Klausel, die der Optimierer berücksichtigt und die Reihenfolge ändern kann, in der er die Datensätze parst.
Um den ersten Datensatz zusammen mit GROUP_CONCAT
zurückzugeben , verwenden Sie dies:
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