Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Zapytanie zagregowane bez GROUP BY

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:

  1. Możesz zmienić domyślne ustawienia MySQL na stare zachowanie, aby zezwolić na niezbyt świetne zapytania, takie jak to. Informacje można znaleźć tutaj
  2. 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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak zresetować zapomniane hasło roota MySQL?

  2. Instrukcja COUNT CASE i WHEN w MySQL

  3. Odniesienie do grup w regexie MySQL?

  4. Jak przekonwertować czas MySQL na znacznik czasu UNIX za pomocą PHP?

  5. Obsługa połączeń i ograniczanie przepustowości za pomocą ProxySQL