Toto je nová věc v MySQL 5.7 a je to varování, že váš dotaz je nejednoznačný.
Zvažte následující tabulku:
id | name | age | points
--------------------------------------------
1 Bob 21 1
2 James 14 1
3 Bob 21 3
4 James 14 2
5 Casey 17 3
Pokud jste provedli následující dotaz:
SELECT name, age, SUM(points) FROM scores GROUP BY name
Poté name
sloupec se používá pro seskupování. Všimněte si, že age
může mít více hodnot, takže je „neagregovaný“. Musíte něco udělat, abyste tyto hodnoty zhroutili.
Chování ve verzi 5.6 a předchozích bylo pouze vybrat první v závislosti na pořadí řazení, i když to bylo někdy nepředvídatelné a selhalo. Ve verzi 5.7 vám v tom především brání.
Řešením je seskupit to také nebo použít agregační operátor jako MIN()
k tomu.