L'uso di isnull, ifnull, nullif è il seguente:
Uso di isnull(expr):Se expr è nullo, allora isnull() restituisce un valore di 1, altrimenti restituisce 0. mysql> seleziona isnull(1+1); -> 0 mysql> seleziona isnull(1/0); -> 1 Usare = per i confronti con valori nulli è solitamente sbagliato.
La funzione isnull() condivide alcune delle stesse caratteristiche dell'operatore di confronto is null. Vedi la nota su è nullo.
Utilizzo di IFNULL(expr1,expr2):
Se expr1 non è NULL, il valore di ritorno di IFNULL() è expr1; Altrimenti, restituisce un valore di expr2. IFNULL() restituisce un numero o una stringa, a seconda del contesto in cui viene usata.
mysql> SELEZIONA IFNULL(1,0); -> 1 mysql> SELEZIONA IFNULL(NULL,10); -> 10 mysql> SELECT IFNULL(1/0,10); -> 10 mysql> seleziona IFNULL(1/0,'sì');
-> 'sì'
Il valore predefinito del risultato per IFNULL(expr1,expr2) è l'espressione più "generica" delle due, nell'ordine di STRING, REAL o INTERO。 Supponiamo una situazione in cui una tabella basata su espressioni, o MySQL, debba memorizzare il valore di ritorno di IFNULL() in una tabella temporanea nella memoria interna: CREATE TABLE tmp SELECT IFNULL(1,'test') AS test; In questo esempio, la colonna di prova è di tipo CHAR(4).
Utilizzo di NULLIF(expr1,expr2): Se espr1 = expr2 è vero, allora il valore di ritorno è NULLO, altrimenti il valore di ritorno è expr1. Questo è lo stesso di CASE WHEN expr1 = expr2 Allora NULL ELSE expr1 END è lo stesso. mysql> seleziona NULLIF(1,1);
-> NULL mysql> SELEZIONA NULLIF(1,2); -> 1 Se i parametri non sono uguali, MySQL ottiene il valore expr1 due volte.
|