問題文
このエラーは、グループ化をクエリするときにグループ化されていないフィールドが表示されるために報告されます。例:
select id , user_name from user group by user_name;
上記のステートメントは、id フィールドと user_name フィールドをクエリします。User_name はグループ化されていますが、id はグループ化されていません。この時点で、mysql は上記のエラーを報告します。
解決
他のブログ投稿では多くの方法が言及されていますが、ここでは最も実用的な方法を書き留めます。
mysql インストール ディレクトリで my.ini ファイルを見つけます。Win システム用の mysql インストール バージョンがあるかどうかはわかりません。
通常、mysql バージョンを解凍してからインストールを初期化するため、この my.ini ファイルが存在する必要があります。
設定ファイルは次の形式になります。
[mysqld]
配置...
[mysql]
配置...
[client]
配置...
以下に[mysqld]
追加します。sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'
追加後は閉じても構いません。only_full_group_by
追加が完了すると次のようになります。
[mysqld]
sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'
其它配置....
[mysql]
配置...
[client]
配置...
間違いを犯しやすい
追加位置が間違っています。必ず[mysqld]
一番下に。
…そのまま次のページにコピーしたの[mysql]
ですが、mysqlサービスを再起動してもダメで、これに20分もかかりました…。