मैंने पढ़ा है कि अशक्त की तुलना अशक्त से नहीं की जा सकती है और परिणाम हमेशा गलत होता है।
नीचे दिए गए लिंक में मैं 2 नल की तुलना करने में सक्षम हूं और पंक्तियों को वापस कर दिया गया है।
CREATE TABLE user (id varchar(50), banstatus varchar(100));
INSERT INTO user (id, banstatus) VALUES ('1', '1');
INSERT INTO user values ('2', 'NULL');
CREATE TABLE banstatus (id varchar(50), texti varchar(100));
INSERT INTO banstatus VALUES('1', 'Banned');
Insert into banstatus values ('NULL' , 'NULL');
select * from user as u
join banstatus as b on u.banstatus=b.id
http://sqlfiddle.com/#!9/33f25/1/0
तो नल की तुलना के बारे में सही कथन क्या है?
2 जवाब
आपके द्वारा डाले गए मान तार हैं। 'NULL'
एक स्ट्रिंग है और एक निश्चित मान है। NULL
डालने के लिए आपको उद्धरणों का उपयोग नहीं करना चाहिए, उदाहरण के लिए:
INSERT INTO table (field1, field2) VALUES ('foo', NULL)
और आप इसके अर्थ को समझने के लिए NULL
से तुलना नहीं कर सकते, यह अपरिभाषित जैसा कुछ है। हालांकि, आप जांच सकते हैं कि कोई मान NULL
है या नहीं।
आपके उत्तर में आप न्यूल की तुलना वर्चर के रूप में करते हैं, सादा न्यूल नहीं।
संबंधित सवाल
नए सवाल
mysql
MySQL एक फ्री, ओपन सोर्स रिलेशनल डेटाबेस मैनेजमेंट सिस्टम (RDBMS) है जो स्ट्रक्चर्ड क्वेरी लैंग्वेज (SQL) का उपयोग करता है। इस टैग को अन्य DBs जैसे SQL Server, SQLite आदि के लिए उपयोग न करें। वे विभिन्न DB हैं जो सभी डेटा का प्रबंधन करने के लिए SQL की अपनी बोलियों का उपयोग करते हैं।