Αυτό το άρθρο είναι ένα άρθρο καθρέφτη της αυτόματης μετάφρασης, κάντε κλικ εδώ για να μεταβείτε στο αρχικό άρθρο.

Άποψη: 15127|Απάντηση: 0

[Πηγή] Χρήση IFNULL, NULLIF και ISNULL

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 11/5/2018 1:37:59 μ.μ. | | |
Η χρήση των 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 δύο φορές.






Προηγούμενος:Δοκιμή απόδοσης υλικού CPU διακομιστή
Επόμενος:Όταν χρησιμοποιείτε MySQL για την επεξεργασία περισσότερων από ένα εκατομμύριο επιπέδων δεδομένων, υπάρχουν μερικές κοινές λογικές που πρέπει να γνωρίζετε
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com