Mysql5.7は、これがsql_mode = only_full_group_byソリューションと互換性がないようです

問題の説明

今日SQL実行を書いたとき、これはsql_mode = only_full_group_byと互換性がないことに気づきました。

原因分析

データを調べると、最新バージョンのmysql5.7.xがダウンロードおよびインストールされ、only_full_group_byモードがデフォルトでオンになっていることがわかりましたが、このモードをオンにした後、元の同様のgroupbyステートメントでエラーが報告されました。そしてそれは削除されました。それでおしまい。

解決

最初の計画

  • データベースで実行する
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番目の計画

最初のものが機能しない場合は、2番目のものを試す必要があります。まず、無料のインストールmysqlファイルパスを見つけます。もちろん、my.iniファイルを開き、次のように構成をファイルに追加します。

[mysql]
default-character-set=utf8
[mysqld]
port = 3306
# Binary Logging
log-bin=mysql-bin
binlog-format=Row
#Server ID
server-id=201901
#basedir=D:\MySQL\mysql-5.7.14-winx64
#datedir=D:\MySQL\mysql-5.7.14-winx64\data
max_connections=200
character-set-server=utf8
default-storage-engine=INNODB
skip-grant-tables
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTI

次に、保存して終了します。mysqlサービスを再起動します。データベースで
SELECT @@ global.sql_modeを実行し、ONLY_FULL_GROUP_BYモードがないことを確認します。
このとき、SQLを実行すると、愛は大丈夫であることがわかります。

おすすめ

転載: blog.csdn.net/qq_29897369/article/details/90546940