SQL_MODE=only_full_group_by: SELECT リストは GROUP BY 句に含まれておらず、非集計列が含まれています....互換性がありません
P粉850680329
P粉850680329 2023-10-10 13:41:44
0
2
569

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粉850680329
P粉850680329

全員に返信(2)
P粉099000044

MySql エンジンにはシステム変数 ONLY_FULL_GROUP_BY があります。

Mysql バージョン 5.7.5 以降: ONLY_FULL_GROUP_BYSQL モードはデフォルトで有効になります

バージョン 5.7.5 より前: ONLY_FULL_GROUP_BY はデフォルトでは有効になっていません。

ONLY_FULL_GROUP_BY SQL モードが有効になっている場合 (バージョン 5.7.5 以降はデフォルトで有効になっています)、MySQL は選択リスト、HAVING 条件、または ORDER BY## を拒否します。 # リスト GROUP BY 句で名前が指定されておらず、機能的にもそれらに依存していない非集計列を指します。

問題を解決するには、いずれかの解決策 (以下の 3 つのうち 1 つ) を使用してください。

(1) PHPMyAdmin

無効化

: ONLY_FULL_GROUP_BY モード phpMyAdmin を使用している場合は、以下のスクリーンショットに示すように

sql_mode 設定を変更します。 編集

SQLモード

変数を値から削除ONLY_FULL_GROUP_BYText ######または######

(2) SQL/コマンドプロンプト

Disable

: 次のコマンドを実行して、ONLY_FULL_GROUP_BY モードを無効にします。

リーリー ######または######

(3) SELECT *

は使用しないでください。

ONLY_FULL_GROUP_BY

モードを無効にしないでください。ただし、 SELECT クエリで関連列を使用します。関連とは、

group by

句に現れる列、または集計関数 (MAXMIN

SUM

) を含む列を意味します。 COUNT など) ######重要###### point(1) OR point(2) を使用して行われた変更は永続的に設定されず、再起動するたびに復元されます。 したがって、変更が MySQL の再起動後も持続するように、設定ファイル (例: 代码>[mysqld] セクションの 代码>/etc/mysql/my.cnf

) に設定する必要があります。効果:###

設定ファイル:/etc/mysql/my.cnf

変数名

:

sql_mode OR sql-mode

値から ONLY_FULL_GROUP_BY

という単語を削除し、ファイルを保存します。

: 構成ファイル内に sql_mode 変数が見つからない場合は、ファイルの最後に次の 2 行を挿入してください リーリー

いいねを押す +0
P粉909476457

###これ###

この問題は、このコマンド

を使用して MySQL の SQL モードを変更することで簡単に解決できます。 リーリー

これは私にも効果があります.. 私のプロジェクトにはこのようなクエリがたくさんあったため、これを使用しました。そのため、このSQLスキーマをonly_full_group_by

に変更しました。

または、SELECT ステートメントで指定された GROUP BY 句にすべての列のみを含めます。 sql_mode は有効のままにすることができます。

###ありがとう...:-)###

更新日: 2023 年 7 月 14 日

SQL スキーマの変更は 1 つの解決策ですが、構造化クエリ言語のベスト プラクティスは、すべての (SELECT * ...) 列の選択を避け、代わりにグループ化された列に対して @Tim Biegeeisen のような集計関数を使用することです。
https://stackoverflow.com/a/41887524/3602846

以下の回答で言及されています
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!