sql >> Database >  >> RDS >> Mysql

Geaggregeerde zoekopdracht zonder GROUP BY

Er is een wijziging aangebracht in versie 5.7-ish waar het nu standaard query's weigert waarin u aggregeert met behulp van een functie (sum , avg , max , enz.) in de SELECT clausule en verzuim om de niet-geaggregeerde velden in de GROUP BY . te plaatsen clausule. Dit gedrag is een essentieel onderdeel van elk ander RDBMS en MySQL springt eindelijk aan boord.

Je hebt twee opties:

  1. Je kunt de MySQL-instellingen wijzigen naar het oude gedrag om niet-zo-geweldige zoekopdrachten als deze toe te staan. Informatie vindt u hier
  2. U kunt uw vraag oplossen

Optie 2 zou er ongeveer zo uitzien:

SELECT id, password, COUNT(id) AS count FROM users WHERE email = :email GROUP BY id, password LIMIT 1


  1. Meerdere sets of arrays van waarden doorgeven aan een functie

  2. 'IF' in 'SELECT'-statement - kies uitvoerwaarde op basis van kolomwaarden

  3. hoe gebruik ik mysql real escape string?

  4. Een rij ophalen, met gegevens uit de sleutel-waardepaartabel in MySQL