mySQLのマニュアル比較演算子の冒頭に
「比較演算は、1(TRUE)、0(FALSE)、または NULL の値を返します。」
と書かれている。
なので、下記4つのSQLはすべて同じ結果になる。(はずw。ただし列Cは数値型だとする)
SELECT CASE WHEN `a`=`b` THEN `c` ELSE 0 END FROM `abc`; SELECT CASE `a` WHEN `b` THEN `c` ELSE 0 END FROM `abc`; SELECT IF(`a`=`b`,`c`,0) FROM `abc`; SELECT (`a`=`b`)*`c` FROM `abc`
お好みはどれでしょう。
0 件のコメント:
コメントを投稿