sql >> データベース >  >> RDS >> Mysql

構文エラーまたはアクセス違反:1055 SELECTリストの式#8がGROUP BY句になく、非集計列が含まれています

    これは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()のような集計演算子を適用することです。 それに。



    1. Hibernate + MySQL + rewriteBatchedStatements =true

    2. Xcode:iOSTextFieldからリモートデータベースなどにデータを送信する最も簡単な方法

    3. PostgreSQLの大きなテーブルで削除クエリを実行する最速の方法

    4. 複数のスキーマでアランビックアップグレードを実行する