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`

とすればいいだけです。

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

名前ダッチ

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

Twitterはこちら >>

  • コメント: 0

関連記事

コメント

  • コメント (0)

  • トラックバックは利用できません。

  1. この記事へのコメントはありません。

最近の記事

  1. WP:WordPress(ワードプレス)
  2. WP:WordPress(ワードプレス)
  3. 文系と理系のメリットとデメリット
  4. 東京駅
  5. 残業
  6. プログラマーになるのに年齢は関係ある?
  7. 年収(収入)
  8. income(収入)
  9. プログラマーになろう
  10. オンライン学習支援サイト

Twitter

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

アーカイブ

PAGE TOP