不定イコール不定は不定
先週のになりますが。現場でうぉーたー!した話です。
今の現場ではプロシージャでなんでもやっているらしく。パフォーマンスがえらい悪いわけですよ。
ある帳票の出力に1時間とかかかるんです。。。
中身みたら、ななせんぎょう以上ありました。ありえん。
しかも繰り返しが入れ子で、いくつsql発行してるんだって話ですよ。たしか三千こえてた気が…
でまぁ、中を見ると同じような文ばかりなもんで、なんじゃこりゃーーーーーーー!
前置きが長くなりました。
結局どういうことだったかと言いますと、
項目がnullの時とそれ以外の時でsqlを分けてたんですね。
調べて初めて知ったのですが、
MySQLではnull=nullがTrueにならず、nullになるんですよ!
てっきり同じだからtrueになると思ってました。
基本的にはis nullを使用すること、となっていましたが、まだるっこしくてやってられません。
そこで。
null <=> null だとtrueになります!
もちろん他の値もちゃんと比較できます。
公式に載っていなかった気がしますが、ちゃんと使えます。
これのおかげでsqlがざっくり六分の一位にできそうです。
nullという値は空ではなく、「不定」なんだと認識しましたとさ。