これはMySQL5.7の新しい機能であり、クエリがあいまいであることを警告しています。
次の表を検討してください。
id | name | age | points
--------------------------------------------
1 Bob 21 1
2 James 14 1
3 Bob 21 3
4 James 14 2
5 Casey 17 3
次のクエリを実行した場合:
SELECT name, age, SUM(points) FROM scores GROUP BY name
次に、name
列はグループ化に使用されます。 age
に注意してください 複数の値を持つ可能性があるため、「非集計」です。これらの値を折りたたむには、何かをする必要があります。
5.6以前の動作は、ソート順に応じて最初のものを選択することでしたが、これは予測できない場合があり、失敗する場合がありました。 5.7では、そもそもそれを実行できなくなっています。
ここでの解決策は、それをグループ化するか、MIN()
のような集計演算子を適用することです。 それに。