MySqlのバージョンが変更され、groupbyがグループクエリに使用されるとエラーが報告されますsql_mode = only_full_group_by

1つは、エラーの理由です

MySQL5.7.5以降、only_full_group_byがsql_modeのデフォルトオプションの1つになり、一部のSQLステートメントが失敗する可能性があります。
たとえば、group byをグループクエリに使用すると、エラーが報告されます

二、解決策

1.sql_modeを変更します

-- 查询
select @@global.sql_mode

-- 修改
set @@sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';

上記は、新しく作成されたデータベースに有効なグローバルsql_modeを変更するためのものです。

2.既存のデータベースの場合

set sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';

このように、データベースの再起動後に設定が無効になります。これは確かに当てはまります。上記の方法は、メモリ内の値を変更するだけであり、永続的に変更することはできません。

3.元の構成レコード

ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

4.新しい構成レコード

違い:ONLY_FULL_GROUP_BYが削除されます

STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

5.それがAlibabaCloud RDSの場合は、新しい構成に変更します

  • 変更する
    ここに画像の説明を挿入します

  • 参加する
    ここに画像の説明を挿入します

  • 上記のコンテンツの一部は、Ant Classroomhttp ://www.mayikt.com/からのものです

  • パーソナルオープンソースプロジェクト(ユニバーサルバックグラウンド管理システム)–> https://gitee.com/wslxm/spring-boot-plus2、必要に応じてチェックアウトできます

  • これでこの記事は終わりです。お役に立てば幸いです。気に入ったり、注目したりしてください。今後もコンテンツを更新していきます...ご覧いただきありがとうございます。

おすすめ

転載: blog.csdn.net/qq_41463655/article/details/109035668