sql >> Database teknologi >  >> RDS >> Mysql

Aggregeret forespørgsel uden GROUP BY

En ændring blev foretaget i version 5.7-ish a> hvor den nu som standard vil afvise forespørgsler, hvor du samler ved hjælp af en funktion (sum , avg , max osv.) i SELECT klausul og undlader at placere de ikke-aggregerede felter i GROUP BY klausul. Denne adfærd er en del af alle andre RDBMS og MySQL hopper endelig ombord.

Du har to muligheder:

  1. Du kan ændre MySQL-indstillingerne til standardindstillingerne til den gamle adfærd for at tillade ikke så gode forespørgsler som denne. Oplysninger kan findes her
  2. Du kan rette din forespørgsel

Mulighed 2 ville se nogenlunde sådan ud:

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


  1. Database-omlægninger – hvorfor de betyder noget

  2. En fremmednøgle-begrænsning mislykkes

  3. Sådan bruges databasehelper-klassen i en asynctask-klasse, der arbejder på en anden klasse

  4. Hvordan opretter man forbindelse til MySQL-database i PHP ved hjælp af mysqli-udvidelse?