※例となるようなSQLは一番下にあります。 SQLだけ知りたい方は、下部にある結論から読んでみてください。 → 下部にある結論に飛ぶ ■ はじめに MySQLで完全外部結合FULL OUTER JOINはまだ使えません。 ですので、同じ結果を得る別の方法を考える必要があります。 なお基礎知識は本当に基礎的なことなので、読み飛ばしていただいても大丈夫です。 ■ 基礎知識 まず結合について、次の2テーブルを考えます。 テーブルA (table_a) user_id user_name
【MySQL5.6->5.7】 とてもたくさんの列をもったテーブルをつくりたい/Row size too large (> 8126)についてかんがえるMySQL ■ はじめに 現実を前にして正規化などといった理想を捨て去ったとある人は、 とある日とあるスキーマに全知全能の神を降臨させようと画策した。 すなわちTEXT型の列を大量に備えたテーブルを用意して、 あらゆる情報と状況を何とかしてもらおうと企図したのだった……!! ■ やってみる MySQL5.6を実行できる環境を用意して、 とりあえず以下のようなCREATE TABLE文を叩いてみる。 mysql> CREATE TABLE zeus ( -> col1 TEXT -> , col2 TEXT -> , col3 TEXT -- 中略 -> , col195 TEXT -> , col196 TEXT -> ) ENGINE=I
■ 結論 ● sql_mode が NO_ZERO_DATE (NO_ZERO_IN_DATE) であり、かつ STRICT_TRANS_TABLE (STRICT_ALL_TABLES) であるとき、'0000-00-00' は SELECT しかできない。 (MySQL5.7 以上のデフォルト値であるときの挙動) ● sql_mode が NO_ZERO_DATE (NO_ZERO_IN_DATE) でない、または STRICT_TRANS_TABLE (STRICT_ALL_TABLES) でないとき、NULLを許可しない列に限り、'0000-00-00' は IS NULL にもマッチする。 (MySQL5.6 以下のデフォルト値であるときの挙動) ■ はじめに ● MySQLでは0年0月0日、すなわち '0000-00-00' などといった日付を登録することができる。 https
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く