Mysql
 sql >> Base de données >  >> RDS >> Mysql

Pourquoi MySQL vous permet-il de regrouper par colonnes qui ne sont pas sélectionnées

Vous avez raison, MySQL vous permet de créer des requêtes ambiguës et ayant des résultats arbitraires. MySQL vous fait confiance pour savoir ce que vous faites, il est donc de votre responsabilité d'éviter de telles requêtes.

Vous pouvez faire en sorte que MySQL applique GROUP BY de manière plus 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