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,'yes');
-> 'yes'
IFNULL(expr1,expr2)
のデフォルトの結果値は、STRING
、REAL
、または INTEGER
の順に、ふたつの式のより 「一般的」 なものです。式や MySQL が一時テーブルの IFNULL()
によって戻された値を内部に蓄積しなければいけない場所に基づくテーブルの大文字小文字を考慮してください :
mysql>CREATE TABLE tmp SELECT IFNULL(1,'test') AS test;
mysql>DESCRIBE tmp;
+-------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+---------+------+-----+---------+-------+ | test | char(4) | | | | | +-------+---------+------+-----+---------+-------+
この例では、test
カラムのタイプは CHAR(4)
です。