しぃぶろぐ。

仕事とか技術関係のこと。他色々

不定イコール不定は不定

先週のになりますが。現場でうぉーたー!した話です。

今の現場ではプロシージャでなんでもやっているらしく。パフォーマンスがえらい悪いわけですよ。
ある帳票の出力に1時間とかかかるんです。。。
中身みたら、ななせんぎょう以上ありました。ありえん。
しかも繰り返しが入れ子で、いくつsql発行してるんだって話ですよ。たしか三千こえてた気が…
でまぁ、中を見ると同じような文ばかりなもんで、なんじゃこりゃーーーーーーー!

前置きが長くなりました。
結局どういうことだったかと言いますと、
項目がnullの時とそれ以外の時でsqlを分けてたんですね。
調べて初めて知ったのですが、
MySQLではnull=nullがTrueにならず、nullになるんですよ!
てっきり同じだからtrueになると思ってました。
基本的にはis nullを使用すること、となっていましたが、まだるっこしくてやってられません。
そこで。
null <=> null だとtrueになります!
もちろん他の値もちゃんと比較できます。
公式に載っていなかった気がしますが、ちゃんと使えます。

これのおかげでsqlがざっくり六分の一位にできそうです。

nullという値は空ではなく、「不定」なんだと認識しましたとさ。