mysql.h
IFNULL
IFNULL(expr1,expr2)
Si expr1 no es NULL, IFNULL() devuelve expr1, en caso contrario, devuelves expr2. IFNULL() devuelve un valor numérico o una cadena, dependiendo del contexto en el que se use.
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'
En MySQL 4.0.6 y posteriores, el valor de resultado por defecto de IFNULL(expr1,expr2) es la más "general" de las dos expresiones, en el orden STRING, REAL o INTEGER. La diferencia con versiones de MySQL anteriores es generalmente más notable cuando se crea una tabla basada en expresiones o MySQL no almacena internamente el valor de un IFNULL() en una tabla temporal.
CREATE TABLE tmp SELECT IFNULL(1,'test') AS test;
Desde MySQL 4.0.6, el tipo para la columna 'test' es CHAR(4), mientras que en versiones anteriores el tipo sería BIGINT.