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 実装の例

目次1.Vue.js の機能: 2.Observer.js 関数 (データハイジャック): 3. C...

JavaScript は div マウス ドラッグ効果を実装します

この記事では、divマウスドラッグ効果を実現するためのJavaScriptの具体的なコードを参考まで...

リアルタイムクロックを実装するネイティブJS

ネイティブ JS で実装したリアルタイム クロック エフェクトを共有します。エフェクトは以下のとおり...

MySQLのダウンロードとインストールのプロセスの詳細な説明

1: MySqlをダウンロードする公式サイトのダウンロードアドレス: https://dev.mys...

Linuxロスレス展開方法

概要クラウド プラットフォームのお客様のサーバーでは、業務量が拡大し続けるとディスク容量が不足する場...

Django+Mysql+Redis+Gunicorn+NginxのDockerデプロイメントの実装

I. はじめにDockerテクノロジーは現在非常に人気があります。コンテナを介してプロジェクト環境を...

MySQL は SQL ステートメントの最新のレコードをクエリします (最適化)

最悪の選択肢は、結果を時間順に並べ替えて最初のものを取ることです。 *から選択 ここで、create...

Ubuntu 18.04 MySQL 8.0 のインストールと設定方法のグラフィックチュートリアル

この記事では、MySQL 8.0のインストールと設定方法を参考までに紹介します。具体的な内容は以下の...

MySQL 5.7 以降のバージョンのダウンロードとインストールのグラフィック チュートリアル

1. ダウンロード1. MySQL公式サイトのダウンロードアドレス: https://downloa...

優れたHTML印刷コードがページめくりをサポート

ylbtech_html_print HTML 印刷コード、ページめくりをサポートコードをコピーコー...

Mysql トランザクション分離レベルの読み取りコミットの詳細な説明

MySQL トランザクション分離レベルを表示する mysql> '%isolation...

CSS3は背景画像にマスクを設定し、マスクスタイルの継承の問題を解決します。

多くの場合、透明度の設定やぼかしなど、写真の背景を加工する必要があります。 ただし、背景画像が配置さ...

要素タイムラインの実装

目次コンポーネント - タイムラインカスタムノードスタイルカスタムタイムスタンプコンポーネント - ...

webpackでHMRを手動で実装するいくつかの方法

目次1. はじめに2. GitHub 3. 基本構成プロジェクトディレクトリパッケージ.json c...

CentOS での mysql5.7 の詳細なインストールと設定のチュートリアル

インストールユーザーにインストール権限があることを確認してくださいルートスイッチなしsuルート(su...