くりゅぴ!

サーバーやWEB問題解決のメモから生活お得情報まで。未分類のものは執筆中

MySQLのGroup byエラー

MySQLの5.7以上からは
sql_mode=only_full_group_by が初期設定で有効になっており、
これが有効になっているとこれまで問題なくGroup byできていたものがエラーを吐いたりする。
設定を変えれば解決するのだが、今後のことを考えると厳密にしといた方が良いなと思うので、直したい。

例えば
SELECT id, name FROM sample GROUP BY name;
これだとエラーになる。

しかし、
SELECT id, name FROM sample GROUP BY id,name;
こうすることでエラーにならなくなる。
セレクトで指定しているもの全てをGroup byに書けば良い。
ただ、集計関数のCOUNTやSUMなどがSELECTでフィールド指定されていてもこちらは書かなくて良い。
サブクエリもあった際はGroup byに書かないといけないのでエイリアスをつけてあげると良い。
またJOINした際もSELECTでフィールド指定していればそちらもGroup byに書かないといけない。

サーバー開発

タグ:

サーバー開発の最新記事

2020年8月24日
さくらサーバー移管後DNSゾーンは変更できない
2020年7月13日
NginxにSERVER_NAMEがない
2020年6月18日
NginxにREDIRECT_URLを追加する

コメントを残す

メールアドレスが公開されることはありません。