Az isnull, ifnull, nullif használata a következő:
Az isnull(expr) használataHa expr null, akkor isnull() 1-es értéket ad vissza, különben 0-t ad. MySQL> Select ISNULL(1+1); -> 0 MySQL> Select ISNULL(1/0); -> 1 Nullérték-összehasonlításokhoz = használata általában helytelen.
Az isnull() függvény néhány olyan tulajdonságot osztogat, mint az is null összehasonlító operátor. Lásd a megjegyzést nullról.
Az IFNULL(expr1,expr2) használata:
Ha expr1 nem NULL, akkor az IFNULL() visszatérési értéke expr1; Ellenkező esetben expr2 értéket ad. Az IFNULL() vagy egy számot, vagy egy stringet ad vissza, attól függően, hogy milyen kontextusban használják.
mysql> IFNULL(1,0) VÁLASSZA; -> 1 MySQL > SELECT IFNULL(NULL,10); -> 10 mysql> IFNULL(1/0,10) VÁLASSZA; -> 10 mysql> SELECT IFNULL(1/0, 'igen');
-> 'igen'
Az IFNULL(expr1,expr2) alapértelmezett eredményértéke a két kifejezés közül a "általánosabb" sorrendben, a STRING, REAL vagy EGÉSZ SZÁM。 Tegyük fel egy olyan helyzetet, ahol egy kifejezésalapú táblának, vagyis a MySQL-nek az IFNULL() visszatérő értékét egy ideiglenes táblában kell tárolnia belső memóriában: CREATE TABLE tmp SELECT IFNULL(1,'test') tesztként; Ebben a példában a tesztoszlop CHAR(4) típusú.
A NULLIF(expr1,expr2) használata: If expr1 = expr2 igaz, akkor a visszaküldési érték NULL, különben a visszatérítési érték expr1. Ez ugyanaz, mint CASE WHEN expr1 = expr2 Akkor a null else, expr1 END ugyanaz. mysql> SELECT NULLIF(1,1);
-> NULL MYSQL> SELECT NULLIF(1,2); -> 1 Ha a paraméterek nem egyenlőek, akkor a MySQL kétszer kapja az expr1 értéket.
|