ONLY_FULL_GROUP_BY
MySQLはなぜ突然“厳しく”なったのか そもそもSQL標準とは何か GROUP BYが象徴する問題 なぜ昔のMySQLは標準に従わなかったのか 転機:企業利用の増加 STRICTモードとSQLモード なぜ厳格化は避けられなかったのか 開発者が受ける影響 よくある誤解:MySQLが使…
MySQL5.6までと5.7以降は“同じDB”ではない 最大の変化:SQLモードのデフォルト変更 なぜアプリケーションが壊れるのか STRICTモードの影響 日付の扱いも変わる インデックスと最適化の変化 文字コードと照合順序 5.6と5.7の思想の違い ORMやフレームワークへ…
古いMySQLで作られたシステムを移行すると、なぜ壊れるのか 壊れるのは「データ」ではなく「前提」 新しいMySQLは“間違い”を許さない なぜ古いMySQLは寛容だったのか 移行時に起きる典型的なトラブル 1. GROUP BY問題** 2. 日付の扱い** 3. 文字コード** ORM…
GROUP BYの結果が変わった ― MySQLが壊れたわけではない 何が起きているのか 古いMySQLの実際の挙動 なぜ8系で変わったのか なぜ怖いのか 正しい書き方 最新の行を取りたい どれでもよい 集計したい ORMとGROUP BY 危険な回避策 なぜこの変更は重要なのか ま…
MySQLのONLY_FULL_GROUP_BYで突然アプリが落ちるのは「厳しくなった」からではない ONLY_FULL_GROUP_BYとは何か 何が問題になるのか なぜエラーになるのか(重要) 実際に起きていたこと なぜ本番だけ落ちるのか よくやる危険な対応 正しい修正方法 なぜこの…