問題の原因:
MySQL 5.7.5以降の関数は検出関数に依存します。ONLY_FULL_GROUP_BYSQLモードが有効になっている(デフォルトで有効になっている)場合、MySQLは選択リストを拒否し、Having条件またはOrder byリストのクエリはGroup By句の名前のない非コレクションを参照します。列は機能的にそれらに依存しません。
解決策1 [サービスの再起動は失敗します]:
// 使用 sql 查询
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
ONLY_FULL_GROUP_BYを削除して、値を自分でリセットします。
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 [恒久的なソリューション]:
コンピュータのmysqlインストールディレクトリを見つけて、my.ini構成ファイルを編集します。
編集内容は次のとおりです。
# 修改MySQL5.7.5及以上依赖检测功能
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
変更後に保存して終了し、mysqlサービスを再起動してもう一度テストします。