Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

mysql में null<>null=null क्यों है

क्योंकि कोई भी तुलना ऑपरेटर NULL . से अधिक है एक एसक्यूएल फ़िल्टर में दिखने से (और करता है) पंक्ति का चयन नहीं किया जाना चाहिए।

आपको नल सुरक्षित ऑपरेटर का उपयोग करना चाहिए <=> NULL वाले कॉलम से तुलना करने के लिए मान और अन्य NOT NULL मान लेकिन <=> लौटाएगा 1 जब दोनों ऑपरेंड NULL हों क्योंकि NULL NULL . के बराबर कभी नहीं माना जाता है ।

यह एक ऐसी स्थिति का उदाहरण है जहां नल सुरक्षित ऑपरेटर उपयोगी है:

आपके पास एक टेबल है:

Phones
----
Number
CountryCode (can be NULL) 

और आप उन सभी फ़ोन नंबरों का चयन करना चाहते हैं जो स्पेन से नहीं हैं (देश कोड 34)। पहली कोशिश आमतौर पर होती है:

SELECT Number FROM Phones WHERE CountryCode <> 34;

लेकिन आप देखते हैं कि ऐसे फोन हैं जिनका कोई देश कोड नहीं है (NULL मान) सूचीबद्ध नहीं किया जा रहा है और आप उन्हें अपने परिणाम में शामिल करना चाहते हैं क्योंकि वे न तो स्पेन से हैं:

SELECT Number FROM Phones WHERE CountryCode <=> 34;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL एक कॉलम से अलग मान गिनें

  2. मैं लैरवेल माइग्रेशन के साथ टाइमस्टैम्प कॉलम का डिफ़ॉल्ट मान वर्तमान टाइमस्टैम्प पर कैसे सेट कर सकता हूं?

  3. Windows 10 पर MySQL डेटाबेस को प्रारंभ करने में विफल रहता है

  4. MySQL:होस्ट कॉलम में % का क्या अर्थ है और उपयोगकर्ता का पासवर्ड कैसे बदलें

  5. किसी अन्य संग्रहीत कार्यविधि में mysql संग्रहीत कार्यविधि के परिणाम सेट का उपयोग करें