Windows PC で MySQL 5.7.13 と WAMP サーバーを使用しています
私の問題は、このクエリを実行するときです
リーリーいつもこのエラーが発生します
SELECT リストの式 #1 は GROUP BY 句になく、非集計列 "returntr_prod.tbl_customer_pod_uploads.id" を含みますが、これは GROUP BY 句の列に機能的に依存していません。これは次のとおりです。 sql_mode=only_full_group_by 互換性がありません
最良の解決策を教えていただけますか?
この結果が必要です
リーリーP粉0990000442023-10-11 11:07:33
MySql エンジンにはシステム変数 ONLY_FULL_GROUP_BY
があります。
Mysql バージョン 5.7.5 以降: ONLY_FULL_GROUP_BY
SQL モードはデフォルトで有効になります
バージョン 5.7.5 より前: ONLY_FULL_GROUP_BY
はデフォルトでは有効になっていません。
ONLY_FULL_GROUP_BY
SQL モードが有効になっている場合 (バージョン 5.7.5 以降はデフォルトで有効になっています)、MySQL は選択リスト、HAVING
条件、または ORDER BY## を拒否します。 # リスト
GROUP BY 句で名前が指定されておらず、機能的にもそれらに依存していない非集計列を指します。
無効化
: ONLY_FULL_GROUP_BY モード
phpMyAdmin を使用している場合は、以下のスクリーンショットに示すように
変数を値から削除ONLY_FULL_GROUP_BY
Text
######または######
Disable
: 次のコマンドを実行して、ONLY_FULL_GROUP_BY モードを無効にします。
リーリー ######または######(3) SELECT *
ONLY_FULL_GROUP_BY
モードを無効にしないでください。ただし、
SELECT クエリで関連列を使用します。関連とは、
句に現れる列、または集計関数 (MAX、MIN
、
、) を含む列を意味します。 COUNT
など)
######重要######
point(1) OR point(2) を使用して行われた変更は永続的に設定されず、再起動するたびに復元されます。
したがって、変更が MySQL の再起動後も持続するように、設定ファイル (例: 代码>[mysqld]<代码> セクションの 代码>/etc/mysql/my.cnf
変数名
sql_mode
OR
sql-mode
値から ONLY_FULL_GROUP_BY
注: 構成ファイル内に
sql_mode 変数が見つからない場合は、ファイルの最後に次の 2 行を挿入してください
リーリー
P粉9094764572023-10-11 00:45:13
###これ###
この問題は、このコマンド
を使用して MySQL の SQL モードを変更することで簡単に解決できます。 リーリーこれは私にも効果があります.. 私のプロジェクトにはこのようなクエリがたくさんあったため、これを使用しました。そのため、このSQLスキーマをonly_full_group_by
に変更しました。または、SELECT ステートメントで指定された GROUP BY 句にすべての列のみを含めます。 sql_mode は有効のままにすることができます。
###ありがとう...:-)###更新日: 2023 年 7 月 14 日
SQL スキーマの変更は 1 つの解決策ですが、構造化クエリ言語のベスト プラクティスは、すべての (SELECT * ...) 列の選択を避け、代わりにグループ化された列に対して @Tim Biegeeisen のような集計関数を使用することです。