मैंने पढ़ा है कि अशक्त की तुलना अशक्त से नहीं की जा सकती है और परिणाम हमेशा गलत होता है।

नीचे दिए गए लिंक में मैं 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

तो नल की तुलना के बारे में सही कथन क्या है?

1
Zephyr 12 अक्टूबर 2017, 22:05

2 जवाब

सबसे बढ़िया उत्तर

आपके द्वारा डाले गए मान तार हैं। 'NULL' एक स्ट्रिंग है और एक निश्चित मान है। NULL डालने के लिए आपको उद्धरणों का उपयोग नहीं करना चाहिए, उदाहरण के लिए:

INSERT INTO table (field1, field2) VALUES ('foo', NULL)

डेमो

और आप इसके अर्थ को समझने के लिए NULL से तुलना नहीं कर सकते, यह अपरिभाषित जैसा कुछ है। हालांकि, आप जांच सकते हैं कि कोई मान NULL है या नहीं।

3
Samer Abu Gahgah 12 अक्टूबर 2017, 22:21

आपके उत्तर में आप न्यूल की तुलना वर्चर के रूप में करते हैं, सादा न्यूल नहीं।

1
yılmaz 12 अक्टूबर 2017, 22:12