MySQLでこの問題の解決策が見つかりました:SELECTリストの式#7がGROUP BY句になく、nonaggreが含まれています

問題の原因:

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サービスを再起動してもう一度テストします。

ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/qq_43647359/article/details/106343013