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

関連記事

最近の記事

  1. レンタルサーバ:おすすめの共用サーバ
  2. ホームページ(homepage)
  3. システムアップデート
  4. エックスサーバー(XSERVER)
  5. エックスサーバー(XSERVER)
  6. エックスサーバー(XSERVER)
  7. WEBサイト構築
  8. スパム(SPAM)対策
  9. サイト公開
  10. ネームサーバーの登録

Twitter

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

  • ブログのプロフィールなんかで使用するキャラクター用のイラストが完成しました。プロの方に頼むとめっちゃ男前に作ってくれたから、見栄はってるみたいではずかしいけど、取りあえずこれで運用開始です。 あとは、Twitterのアイコンも現在作成して貰ってる最中やから、来週中には完成しそう!
    about 51分 ago via Twitter Web App

アーカイブ

PAGE TOP