sql >> Database >  >> RDS >> Mysql

MySQL:wat gebeurt er met niet-geaggregeerde velden bij een GROUP BY?

MySQL> 5.7.5

Het is een illegale zoekopdracht.

U krijgt een foutmelding zoals:

ERROR 1055 (42000): Expression #1 of SELECT list is not in 
GROUP BY clause and contains nonaggregated column 'a' 
which is not functionally dependent on columns in 
GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

Meer details op https://dev.mysql. com/doc/refman/5.7/en/group-by-handling.html

MySQL <5.7.5

Kort antwoord:het is een geldige vraag, maar de server is vrij om elke waarde te retourneren

Dit lezen https://dev.mysql.com /doc/refman/5.0/en/group-by-handling.html toont:

Er is dus geen manier om te bepalen wat die waarde zal zijn (als er meer waarden zijn voor die groep)



  1. PHP-MYSQL:Unix Timestamp converteren naar DateTime en vice versa

  2. SQLite-index

  3. Verzamelmethode:COUNT-functie in Oracle Database

  4. Varchar-probleem op Mysql 2147483647