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はじゃんけんゲームを実装します

推薦する

SCSS スタイルのコードを 50% 削減する 14 の実践的な経験

序文Sass は CSS3 言語の拡張機能です。Sass を使用すると、より良いスタイルシートをより...

高品質なコードを書く Web フロントエンド開発実践書の抜粋

(P4) Web 標準は一連の標準で構成されています。中心となる概念は、Web ページの構造、スタイ...

0.1秒の価値!フロントエンドのウェブページの高速化の問題について簡単に説明します

私が現在の仕事の面接を受けたとき、リーダーが真剣にこう言っていたのを覚えています。「今の世の中はイン...

CSS の境界線を通して三角形と矢印を実装するサンプルコード

1. CSS ボックスモデルボックスには、余白、境界線、パディング、コンテンツが含まれます境界線の接...

Win2008 サーバー セキュリティ チェック手順ガイド (日常のメンテナンス手順)

ドキュメントはしばらく前から書いていましたが、アップロードする勇気がありませんでした。サーバーのセキ...

画像拡大鏡効果のJSバージョン

この記事では、画像拡大鏡効果を実現するためのJSの具体的なコードを参考までに紹介します。具体的な内容...

ウェブサイト構築経験概要

<br />注目を集めるウェブサイトを作成するには、どのような原則に従うべきでしょうか?...

React における useEffect と useLayoutEffect の違い

目次前提条件使用効果コミット前ミューテーション効果コミットミューテーション効果コミットレイアウト効果...

フロントエンドコンポーネント化の基礎知識を詳しく解説

目次コンポーネントの基本概念オブジェクトとコンポーネントの違い成分属性属性とプロパティ属性:財産:ク...

CSS リスト モデルでのマーカー タグの使用

この記事では主に、 list-itemの下にある::master疑似要素、 list-style-i...

CSS 完全な視差スクロール効果

1. 何ですか視差スクロールとは、複数の背景レイヤーを異なる速度で動かすことで、3次元のモーション...

Vue3 でサードパーティのコンポーネントライブラリをオンデマンドでロードする方法

序文Element Plus を例に、コンポーネントとスタイルのオンデマンド読み込みを構成します。環...

MySQL でデータ テーブルを作成し、主キーと外部キーの関係を確立する方法の詳細な説明

序文MySQL テーブルの主キーと外部キーを作成するときは、次の点に注意する必要があります。主キーと...

画面なしで無線ネットワークに接続しているときに Raspberry Pi の IP アドレスを見つける方法

あなたがlinuxerだと仮定すると、 windowserだとは想定しません。Windows ユーザ...

ポータルサイトのフォーカス画像のデザインに関するいくつかの結論

フォーカス画像は、画像、テキスト、動的なインタラクティブ効果を統合したコンテンツを表示する方法です。...