Η χρήση των isnull, ifnull, nullif είναι η εξής:
Χρήση του isnull(expr):Εάν το expr είναι null, τότε το isnull() επιστρέφει μια τιμή 1, διαφορετικά επιστρέφει 0. MySQL> Επιλέξτε ISNULL(1+1); -> 0 MySQL> Επιλέξτε ISNULL(1/0); -> 1 Η χρήση = για συγκρίσεις μηδενικών τιμών είναι συνήθως λάθος.
Η συνάρτηση isnull() μοιράζεται μερικά από τα ίδια χαρακτηριστικά με τον τελεστή σύγκρισης is null. Δείτε τη σημείωση σχετικά με το είναι null.
Χρήση του IFNULL(expr1,expr2):
Εάν το expr1 δεν είναι NULL, η τιμή επιστροφής του IFNULL() είναι expr1. Διαφορετικά, επιστρέφει μια τιμή expr2. Η IFNULL() επιστρέφει είτε έναν αριθμό είτε μια συμβολοσειρά, ανάλογα με το περιβάλλον στο οποίο χρησιμοποιείται.
mysql> ΕΠΙΛΕΞΤΕ IFNULL(1,0); -> 1 mysql> ΕΠΙΛΕΞΤΕ IFNULL(NULL,10); -> 10 mysql> ΕΠΙΛΟΓΗ IFNULL(1/0,10); -> 10 mysql> ΕΠΙΛΟΓΗ IFNULL(1/0,'ναι')·
-> «ναι»
Η προεπιλεγμένη τιμή αποτελέσματος για IFNULL(expr1,expr2) είναι η πιο "γενική" από τις δύο εκφράσεις, με τη σειρά STRING, REAL ή ΑΚΈΡΑΙΟΣ ΑΡΙΘΜΌΣ。 Ας υποθέσουμε μια κατάσταση όπου ένας πίνακας που βασίζεται σε έκφραση ή MySQL πρέπει να αποθηκεύσει την επιστρεφόμενη τιμή της IFNULL() σε έναν προσωρινό πίνακα στην εσωτερική μνήμη: ΔΗΜΙΟΥΡΓΙΑ ΠΙΝΑΚΑ tmp SELECT IFNULL(1,'test') AS test; Σε αυτό το παράδειγμα, η δοκιμαστική στήλη είναι τύπου CHAR(4).
Χρήση του NULLIF(expr1,expr2): Αν expr1 = expr2 είναι true, τότε η τιμή επιστροφής είναι NULL, διαφορετικά η τιμή επιστροφής είναι expr1. Αυτό είναι το ίδιο με την ΠΕΡΙΠΤΩΣΗ ΟΤΑΝ expr1 = expr2 ΤΟΤΕ ΤΟ NULL ELSE expr1 END είναι το ίδιο. mysql> ΕΠΙΛΟΓΗ NULLIF(1,1);
-> ΜΗΔΕΝΙΚΟ mysql> ΕΠΙΛΟΓΗ NULLIF(1,2); -> 1 Εάν οι παράμετροι δεν είναι ίσες, τότε η MySQL παίρνει την τιμή expr1 δύο φορές.
|