Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Aggregierte Abfrage ohne GROUP BY

In Version 5.7-ish wurde eine Änderung vorgenommen wo es jetzt standardmäßig Abfragen ablehnt, in denen Sie mit einer Funktion aggregieren (sum , avg , max , etc.) im SELECT -Klausel und fügen die nicht aggregierten Felder nicht in GROUP BY ein Klausel. Dieses Verhalten ist ein fester Bestandteil jedes anderen RDBMS und MySQL springt endlich an Bord.

Sie haben zwei Möglichkeiten:

  1. Sie können die MySQL-Einstellungen auf das alte Verhalten zurücksetzen, um nicht so tolle Abfragen wie diese zuzulassen. Informationen finden Sie hier
  2. Sie können Ihre Anfrage korrigieren

Option 2 würde in etwa so aussehen:

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