Mysql
 sql >> Database >  >> RDS >> Mysql

Perché MySQL ti consente di raggruppare per colonne che non sono selezionate

Hai ragione, MySQL ti consente di creare query ambigue e con risultati arbitrari. MySQL si fida che tu sappia cosa stai facendo, quindi è tua responsabilità evitare query del genere.

Puoi fare in modo che MySQL applichi GROUP BY in un modo più standard:

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