isnull、ifnull、nullifの使い方は以下の通りです。
isnull(expr)の使用法:exprがnullの場合、isnull()は1の値を返し、そうでなければ0を返します。 mySQL> Select ISNULL(1+1); -> 0 mysql> select isnull(1/0); -> 1 null値比較に=を使うのは通常間違っています。
isnull()関数は、is null比較演算子といくつかの特徴を共有しています。 「は無効である」という注意を参照してください。
IFNULL(expr1, expr2)の使用例:
expr1がNULLでない場合、IFNULL()の返り値はexpr1となります。 そうでなければ、expr2の値を返します。 IFNULL() は、使用される文脈によって数値または文字列を返します。
mysql> SELECT IFNULL(1,0); -> 1 MYSQL> SELECT IFNULL(NULL,10); ->10 mysql> SELECT IFNULL(1/0,10); ->10 mysql> SELECT IFNULL(1/0, 'はい');
->「はい」
IFNULL(expr1,expr2)のデフォルト結果値は、STRING、REAL、または 整数。 式ベースのテーブルやMySQLが、IFNULL()の返り値を内部メモリの一時テーブルに保存しなければならない状況を仮定します。 CREATE TABLE tmp SELECT IFNULL(1,'test') AS test; この例では、テストカラムはCHAR(4)型です。
NULLIF(expr1, expr2)の使用例: もしexpr1なら = expr2 が真であれば、戻り値が NULL になり、そうでなければ戻り値は expr1 となります。 これは CASE WHEN expr1 = expr2 と同じです すると、NULL ELSE EXPR1 ENDは同じです。 mysql> SELECT NULLIF(1,1);
-> NULL mysql> SELECT NULLIF(1,2); -> 1 パラメータが等しくない場合、MySQLはexpr1の値を2回取得します。
|