Jest to nowa rzecz w MySQL 5.7 i jest ostrzeżeniem, że Twoje zapytanie jest niejednoznaczne.
Rozważ poniższą tabelę:
id | name | age | points
--------------------------------------------
1 Bob 21 1
2 James 14 1
3 Bob 21 3
4 James 14 2
5 Casey 17 3
Jeśli wykonałeś następujące zapytanie:
SELECT name, age, SUM(points) FROM scores GROUP BY name
Następnie name
kolumna służy do grupowania. Zwróć uwagę, że age
może mieć wiele wartości, więc jest „niezagregowana”. Musisz coś zrobić, aby zwinąć te wartości.
Zachowanie w wersji 5.6 i wcześniejszych polegało na wybraniu pierwszego w zależności od kolejności sortowania, chociaż czasami było to nieprzewidywalne i kończyło się niepowodzeniem. W wersji 5.7 w pierwszej kolejności uniemożliwiają ci to.
Rozwiązaniem jest tutaj również grupowanie lub zastosowanie operatora agregującego, takiego jak MIN()
do niego.