MySQL バージョン 5.7 以降で、SELECT リストの式 #1 が GROUP BY 句に含まれておらず、非集計が含まれているというグループ化エラーを解決します。

MySQL バージョン 5.7 以降で、SELECT リストの式 #1 が GROUP BY 句に含まれておらず、非集計が含まれているというグループ化エラーを解決します。

理由:

MySQL 5.7.5 以降では機能依存関係の検出が実装されています。 only_full_group_by SQL モードが有効になっている場合 (デフォルト)、MySQL は、選択リスト、条件、または順序リストが、機能的に依存せずに group by で名前が指定されていない非集計列を参照するクエリを拒否します。 (5.7.5 より前の MySQL では、機能の依存関係が検出されず、only_full_group_by はデフォルトで有効になっていませんでした。5.7.5 より前の動作の説明については、MySQL 5.6 リファレンス マニュアルを参照してください。)

sql_mode の内容を表示するには、次のコマンドを実行します。

mysql> セッション変数を表示します。
mysql> グローバル変数を表示します。
mysql> @@sql_mode を選択します。

セッションとグローバルの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 の説明:

only_full_group_by: このオプションは、Oracle と同じグループ ルールを使用します。選択した列は、グループ内にあるか、集計列 (SUM、AVG、MAX、MIN) である必要があります。実際、個人的にはこの構成は distinctive に似ていると感じているので、削除してください。

解決する:

グローバル sql_mode を 'STRICT_TRANS_TABLES、NO_ZERO_IN_DATE、NO_ZERO_DATE、ERROR_FOR_DIVISION_BY_ZERO、NO_AUTO_CREATE_USER、NO_ENGINE_SUBSTITUTION' に設定します。<br data-filtered="filtered">セッション sql_mode を 'STRICT_TRANS_TABLES、NO_ZERO_IN_DATE、NO_ZERO_DATE、ERROR_FOR_DIVISION_BY_ZERO、NO_AUTO_CREATE_USER、NO_ENGINE_SUBSTITUTION' に設定します。<br data-filtered="filtered">

要約する

上記は、MySQL バージョン 5.7 以降でのグループ化エラー「SELECT リストの Expression #1 が GROUP BY 句内になく、非集計値を含む」の解決方法です。お役に立てれば幸いです。ご質問がある場合は、メッセージを残していただければ、すぐに返信いたします。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。
この記事が役に立ったと思われた方は、ぜひ転載していただき、出典を明記してください。ありがとうございます!

以下もご興味があるかもしれません:
  • 単語のグループ化シーケンスと複数フィールドのグループ化のための MySQL グループ方法
  • MySql Group Byは複数のフィールドのグループ化を実装します
  • Mysqlはグループによるソートを使用する
  • MySQL で GROUP BY を使用して最初の N レコードを取得する方法
  • MySQLグループクエリGroup Byの実装原理の詳細な説明
  • MySQL のグループ化により、group by と order by の調査で各グループの最初の数件のレコードを取得します (ランキング)
  • 各グループの最新データを取得するためにMySQLベースのグループを実装する

<<:  nginxフォワードプロキシとリバースプロキシの詳細な説明

>>:  JSはじゃんけんゲームを実装します

推薦する

Vue.js アプリケーションのパフォーマンス最適化分析 + ソリューション

目次1. はじめに2. Vue JS のパフォーマンス最適化が必要な理由は何ですか? 3. Vueの...

CentOS7 での mysql 5.7.23 のバイナリ インストール

インターネット上のインストール情報は不均一で、落とし穴だらけです。インストールにはかなりの労力がかか...

CSS チュートリアル: CSS 属性メディア タイプ

スタイルシートの最も重要な機能の 1 つは、ページ、画面、電子シンセサイザーなどの複数のメディアに適...

MySQL 8.0.13 で日付を 0000-00-00 00:00:00 に設定すると発生する問題を解決する

データベース操作を学び始めたばかりです。今日、データを保存していたところ、エラーが発生していることに...

ウェブページのグリッドデザインを考える

<br />元のアドレス: http://andymao.com/andy/post/8...

JS配列の組み込みトラバーサルメソッドとその違いについての簡単な説明

目次forEach() (ES6) メソッドmap() (ES6) メソッドflatMap() メソ...

iptables の再起動後に Docker の iptables ルールの完全なプロセスが失われる

原因と結果1. ansibleコマンドを使用してジャンプサーバー上のマシンBをテストすると、次のエラ...

Reactはいくつかの方法でパラメータを渡します

目次親コンポーネントと子コンポーネント間でパラメータを渡すルーティングパラメータステータスの改善コン...

http:// の代わりに // を使用する利点は何ですか (アダプティブ https)

//デフォルトプロトコル/ デフォルト プロトコルの使用は、リソース アクセス プロトコルが現在の...

CSS で 3 列レイアウトを実装するいくつかの方法と利点と欠点

序文3 列レイアウトは、その名前が示すように、両側が固定され、中央が適応します。実際の開発では、3 ...

mysql 5.7.17 winx64.zip インストールと設定方法のグラフィックチュートリアル

はじめに: Windows 10 を再インストールし、同時にファイルを整理しました。しかし、MySQ...

ホストサービスにアクセスするDockerでのサービスの実装

目次1. シナリオ2. 解決策3. 結論4. 参考文献1. シナリオ日常の開発およびテスト作業には ...

MySQL でのテーブルの作成と削除の詳細な例

テーブル作成コマンドには以下が必要です。 テーブルの名前フィールド名各フィールドを定義します(タイ...

MySQL で重複しない携帯電話番号テーブルをバッチ生成する方法のサンプルコード

序文多くの MySQL テスト シナリオでは、テスト用に一部のテスト データを手動で生成する必要があ...

JavaScriptで計算機機能を実現するプロセスの詳細な説明

目次1. 電卓機能の紹介2. 計算機ページのデザイン1. ナビゲーションバー2. データ部分3. i...