Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Warum erlaubt Ihnen MySQL, nach Spalten zu gruppieren, die nicht ausgewählt sind?

Sie haben Recht, MySQL erlaubt es Ihnen, Abfragen zu erstellen, die mehrdeutig sind und willkürliche Ergebnisse haben. MySQL vertraut darauf, dass Sie wissen, was Sie tun, also liegt es in Ihrer Verantwortung, solche Abfragen zu vermeiden.

Sie können MySQL dazu bringen, GROUP BY auf eine standardisiertere Weise zu erzwingen:

mysql> SET SQL_MODE=ONLY_FULL_GROUP_BY;

mysql> select EMP_ID, SALARY
  from EMPLOYEE_PAY_TBL
  group by BONUS;

ERROR 1055 (42000): 'test.EMPLOYEE_PAY_TBL.EMP_ID' isn't in GROUP BY