sql >> Databasteknik >  >> RDS >> Mysql

Varför tillåter MySQL dig att gruppera efter kolumner som inte är markerade

Du har rätt, MySQL tillåter dig att skapa frågor som är tvetydiga och har godtyckliga resultat. MySQL litar på att du vet vad du gör, så det är ditt ansvar att undvika sådana frågor.

Du kan få MySQL att tillämpa GROUP BY på ett mer standardiserat sätt:

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


  1. Databasanslutning till MySQL timeout även efter inställning av c3p0.testConnectionOnCheckout=true

  2. Identifiera om det finns minst en rad med ett givet villkor

  3. CONCAT med GROUP_CONCAT i mysql

  4. oci_bind_by_name och to_date PHP/OCI/Oracle