Användningen av isnull, ifnull, nullif är följande:
Användning av isnull(expr):Om expr är null, returnerar isnull() värdet 1, annars returnerar den 0. MySQL> select isnull(1+1); -> 0 MySQL> select isnull(1/0); -> 1 Att använda = för jämförelser med nollvärden är oftast fel.
isnull()-funktionen delar några av samma egenskaper som is null-jämförelseoperatorn. Se noten om är null.
Användning av IFNULL(expr1,expr2):
Om expr1 inte är NULL, är returvärdet för IFNULL() expr1; Annars returnerar den värdet expr2. IFNULL() returnerar antingen ett tal eller en sträng, beroende på i vilket sammanhang det används.
mysql> SELECT IFNULL(1,0); -> 1 mysql> VÄLJ IFNULL(NULL,10); -> 10 mysql> VÄLJ IFNULL(1/0,10); -> 10 mysql> SELECT IFNULL(1/0, 'ja');
-> 'ja'
Standardresultatet för IFNULL(expr1,expr2) är det mer "generiska" av de två uttrycken, i ordningen STRING, REAL eller INTEGER。 Anta en situation där en expressionsbaserad tabell, eller MySQL, måste lagra returvärdet för IFNULL() i en tillfällig tabell i internminnet: SKAPA TABELL tmp VÄLJ IFNULL(1,'test') SOM test; I detta exempel är testkolumnen av typen CHAR(4).
Användning av NULLIF(expr1,expr2): Om expr1 = expr2 är sant, då är returvärdet NULL, annars är returvärdet expr1. Detta är samma som FALL NÄR expr1 = expr2 DÅ ÄR NULL ELSE expr1 END samma. mysql> SELECT NULLIF(1,1);
-> NULL mysql> VÄLJ NULLIF(1,2); -> 1 Om parametrarna inte är lika får MySQL värdet expr1 två gånger.
|