MySQL

データベース

MySQLで「... which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by」というエラーが出ました!!

MySQLで、

select * from line_table where prefCd=13 group by lineCd,lineName

というSQLクエリーを実行すると、

こんなエラーが出てしまいました。

ORDER BY clause is not in GROUP BY clause and contains nonaggregated column 'xxxxxx' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

これは、MySQL5.7で「sql_mode(SQLモード)」のデフォルトの設定が変更になっためです。

具体的には、

「ONLY_FULL_GROUP_BY」が設定されるようになった為に、

GROUP BY句に設定していないカラムを、SELECTするカラムには設定出来なくなりました。

出来れば、sql_modeの設定を変更はしたくないです。

それに、

selectで取得するカラムに「*」を設定しているようなSQL自体も本来は良くないです。
※本来は必要なカラムだけを取得するようにSELECTするSQLにした方がいいです。

なので、SQLを組み替えることにしました。

と言っても、

今回は難しくはなく、

select lineCd,lineName from line_table where prefCd=13 group by lineCd,lineName

とすればいいだけです。

関連記事

  1. MySQL

    データベース

    NULLには注意

    MySQLであるカラムの値が「1」以外のレコードを取得した場合、&…

  2. MySQL

    データベース

    サーバが応答しません (あるいはローカルサーバのソケットが正しく設定されていません)。

    現在、お問い合わせフォームと簡単な静的ページのみで公開しているサイトが…

  3. MySQL

    データベース

    Table 'performance_schema.session_variables' doesn…

    MySQLのバージョンをアップデートした際に、管理…

  4. MySQL

    PHP

    MySQLのトランザクション処理

    今日は久しぶりにはまりました。現在、バッチ処理…

  5. MySQL

    データベース

    「Unknown collation: 'utf8mb4_unicode_ci'」というエラーが。。…

    あるサイトのサーバ移管作業を行っていた際の話です。データベース(M…

  6. MySQL

    サーバ

    MySQLのパスワードを忘れてしまった。。。

    MySQLのrootのパスワードを忘れてしまいました!!&nbsp…

最近の記事

  1. JavaScript
  2. バージョンアップ
  3. JavaScript
  4. セキュリティー
  5. JavaScript
PAGE TOP