Mysql
 sql >> Baza danych >  >> RDS >> Mysql

GROUP_CONCAT zmień GROUP BY zamówienie

Tak, to normalne.

Nigdy nie powinieneś polegać na kolejności, w jakiej niezgrupowane i niezagregowane pola są zwracane.

GROUP_CONCAT ma swój własny ORDER BY klauzula, którą optymalizator bierze pod uwagę i może zmienić kolejność, w jakiej analizuje rekordy.

Aby zwrócić pierwszy rekord wraz z GROUP_CONCAT , użyj tego:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL InnoDB Cluster 8.0 — kompletny przewodnik po wdrożeniu:część pierwsza

  2. Kopie zapasowe administratora MySQL:tryb zgodności, co dokładnie to robi?

  3. Jak wybrać wszystkie rekordy, które znajdują się 10 minut w bieżącym znaczniku czasu w MySQL?

  4. MySQL:Dwie relacje n:1, ale nie obie jednocześnie

  5. Dwukrotne wybieranie kolumny z tabeli w MySQL