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

MySQL रहस्य:शून्य मान गैर-शून्य स्ट्रिंग से अलग नहीं है

बिल्कुल। NULL किसी अज्ञात मान का प्रतिनिधित्व करता है, किसी विशिष्ट मान का नहीं (यह NULL . जैसा नहीं है) सी में, या NULL रूबी में, आदि) SQL में, यदि आप किसी चीज़ की तुलना अज्ञात मान से करते हैं, तो परिणाम भी अज्ञात होता है। और आपको वे पंक्तियाँ नहीं मिलेंगी जहाँ WHERE स्थिति अज्ञात है।

इसे आजमाएं:

SELECT NULL <> 2;

और आप देखेंगे NULL परिणाम के रूप में।

इसे आजमाएं:

SELECT * FROM t WHERE NULL;

और कोई पंक्ति नहीं निकलेगी, भले ही तालिका t बहुत बड़ा है।

अगर आपको वास्तव में वह चाहिए जो आपने कहा था (और मैं इसकी वकालत नहीं कर रहा हूं), तो आप ऐसा कुछ कर सकते हैं:

SELECT T.f1, T.f2
FROM (SELECT NULL f1, 'a' f2) T
WHERE ((T.f1 IS NULL OR T.f2 IS NULL)
    AND (T.f1 IS NOT NULL OR T.f2 IS NOT NULL))
    OR T.f1 <> T.f2


  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. पर्ल कनेक्शन पूलिंग

  4. php/mysql में डुप्लिकेट पंक्ति प्रविष्टि को रोकना

  5. MySQL में लाखों पंक्तियों को हटाना