この記事の主な内容は、MySQL 5.7 で group by ステートメントを使用する際に発生する 1055 エラーの問題の分析と解決策に関するものです。必要な友人は参照してください。
1. mysql バージョン 5.7 以降でグループ化に group by ステートメントを使用する場合、選択したフィールドが group by 後のフィールドに正確に対応せず、他のフィールドがある場合、このエラーが報告されます
エラー 1055 (42000): SELECT リストの式 #1 は GROUP BY 句になく、非集計列が含まれています
2。これは、mysql の上位バージョンで sql_mode
# が追加されているためです。 ##SQL_mode を表示 select @@sql_mode;mysql> select @@sql_mode; ------------------- --- --------------------------------------------------- --- --------------------------------------------------- --- ------------------
| @@sql_mode ---------------------- ------------------------ ----------------------------- ---------------------------- ------------------
| ONLY_FULL_GROUP_BY、STRICT_TRANS_TABLES、NO_ZERO_IN_DATE、NO_ZERO_DATE、ERROR_FOR_pISION_BY_ZERO、NO_AUTO_CREATE_USER、NO_ENGINE_SUBSTITUTION |
---------- ------------ ------------------------ ----------------------- ------------------------ ----------------------- ---
グループ化フィールドと選択フィールドを厳密に制御する ONLY_FULL_GROUP_BY があることがわかります。SQL ステートメントを変更せずにこれを削除するだけです
3. このファイルを編集しました /私の ubuntu システムでは etc/mysql/conf.d/mysql.cnf が見つかり、他のシステムでは対応する設定ファイルが見つかりました。[mysqld] ブロックで sql_mode を設定し、ONLY_FULL_GROUP_BY
sql_mode='STRICT_TRANS_TABLES を削除します,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_pISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITU TION'
4 。現在は正常です
関連チュートリアル:
mysql ビデオ チュートリアル以上がMySQL 5.7 で group by ステートメントを使用すると 1055 エラーが発生するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。