クエリー時only_についてfull_group_byの質問

1023 ワード

1.まず、迅速な解決方法を添付します.現在のデータベース・セッション・リンクにのみ適用されます.迅速な解決方法です.データベースが再起動されると、この問題も発生します.
select @@sql_mode;
select @@global.sql_mode;

次のように表示されます.
ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

実行
set sql_mode = 'STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
set global.sql_mode = 'STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

これで問題は解決すべきだ.
2、only_full_group_byの原因は何ですか?どうしてこの間違いを報告したのですか.
  • mysql 5.7.5バージョンから、デフォルトのsql_modeはONLY_FULL_GROUP_BY、つまり、クエリーのフィールドはgroupbyの後ろに存在しなければなりません.そうしないと、エラーが発生します.mysqlのsql_を変更するmodeはこの問題を完璧に解決することができます.もう1つの方法はmysqlのプロファイルを修正することです.この方法は永遠にかかります.次の記事では、mysqlのプロファイルを変更してsqlを変更する方法について説明する可能性があります.mode.この問題は頻繁に発生するので、ここに記録しておきます.