sql >> Database >  >> RDS >> Mysql

Waarom staat MySQL je toe om te groeperen op kolommen die niet zijn geselecteerd?

Je hebt gelijk, met MySQL kun je query's maken die dubbelzinnig zijn en willekeurige resultaten hebben. MySQL vertrouwt erop dat u weet wat u doet, dus het is uw verantwoordelijkheid om dergelijke vragen te vermijden.

U kunt MySQL GROUP BY op een meer standaard manier laten afdwingen:

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. Snelle MySQL-triggerupdate

  2. Hoe weet ik of een MySQL UPDATE-query mislukt omdat de verstrekte informatie overeenkomt met gegevens die al in de database staan?

  3. Tijdsinterval ophalen in mysql

  4. server tijdzonewaarde 'CDT' wordt niet herkend of vertegenwoordigt meer dan één tijdzone