W wersji 5.7-ish dokonano zmiany gdzie teraz domyślnie odrzuca zapytania, w których agregujesz za pomocą funkcji (sum
, avg
, max
itp.) w SELECT
klauzuli i nie umieszczaj pól niezagregowanych w GROUP BY
klauzula. To zachowanie jest nieodłączną częścią każdego innego RDBMS, a MySQL w końcu wskakuje na pokład.
Masz dwie opcje:
- Możesz zmienić domyślne ustawienia MySQL na stare zachowanie, aby zezwolić na niezbyt świetne zapytania, takie jak to. Informacje można znaleźć tutaj
- Możesz poprawić swoje zapytanie
Opcja 2 wyglądałaby mniej więcej tak:
SELECT id, password, COUNT(id) AS count FROM users WHERE email = :email GROUP BY id, password LIMIT 1