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`

とすればいいだけです。

この記事を書いている人
株式会社ディープ

名前ダッチ

メールアドレスadachi@deep-deep.jp

Twitterはこちら >>

関連記事

最近の記事

  1. アフィリエイト
  2. VPSサーバー
  3. ブログのネタ探し
  4. プログラミング
  5. SSLとは
  6. 常時SSL通信設定後にやっておくべきこと
  7. 常時SSL通信設定方法
  8. htaccessとは
  9. WordPress
  10. WordPress

Twitter

ダッチ@職業ブロガー兼プログラマー
@gatsu0000

アーカイブ

PAGE TOP