जबकि अधिकांश अनुप्रयोगों में सर्वर-साइड या क्लाइंट-साइड तकनीक के कुछ रूप होंगे जिनका उपयोग डेटाबेस क्वेरी परिणामों को फ़िल्टर करने के लिए किया जा सकता है जिनमें NULL
हो सकते हैं या खाली मान, किसी अन्य भाषा का उपयोग करते हुए और कोड निष्पादित करने का अतिरिक्त बोझ आमतौर पर सर्वर के लिए अधिक महंगा होता है और वास्तव में, काफी हद तक अनावश्यक होता है।
इसके बजाय, नीचे हम संक्षेप में यह पता लगाएंगे कि इस कार्य को करने के लिए MySQL इंजन का उपयोग कैसे करें, केवल उन रिकॉर्ड को हथियाने के लिए जो आप चाहते हैं, जबकि pesky NULL
वाले को छोड़कर मिश्रण में कॉलम।
पूर्ण तुलना ऑपरेटर नहीं है
किसी विशेष कॉलम के परिणाम सेट को सुनिश्चित करने के लिए अब तक की सबसे सरल और सबसे सरल विधि में NULL
शामिल नहीं है मानों का उपयोग करना है IS NOT NULL
तुलना ऑपरेटर।
उदाहरण के लिए, यदि हम अपनी books
. में सभी अभिलेखों का चयन करना चाहते हैं तालिका जहां primary_author
कॉलम नहीं है NULL
, क्वेरी इस तरह दिख सकती है:
SELECT
primary_author,
published_date,
title
FROM
books
WHERE
primary_author IS NOT NULL;
चूँकि IS NOT NULL
किसी भी अन्य तुलनित्र की तरह ही व्यवहार करता है, इसे अन्य WHERE
. के साथ जोड़ा जा सकता है आगे परिणामों को फ़िल्टर करने के लिए क्लॉज़, जैसे कि आप =
. का उपयोग कर रहे थे , >
, <
, LIKE
और अन्य मानक तुलना ऑपरेटर।
एकाधिक कॉलम से NULL फ़िल्टर करना
कुछ मामलों में आप उन परिणामों को पुनः प्राप्त करने की इच्छा कर सकते हैं जहां नहीं NULL
मान कई स्तंभों में मौजूद हैं। उदाहरण के लिए, हमारे पास books
. में कुछ रिकॉर्ड हैं तालिका:
id | title | primary_author | published_date
1 | The Hobbit | Tolkien | 09-21-1937
2 | The Silmarillion | Tolkien | 09-15-1977
3 | The Name of the Wind | Rothfuss | 03-27-2007
4 | The Wise Man's Fear | Rothfuss | 03-01-2011
5 | The Doors of Stone | Rothfuss | NULL
6 | Beowulf | NULL | 01-01-1000
ध्यान दें कि पत्थर के दरवाजे (id 5
) अप्रकाशित है और इसलिए published_date
है NULL
. इसी तरह, बियोवुल्फ़ (id 6
) - प्रसिद्ध पुरानी अंग्रेज़ी महाकाव्य कविता - का कोई ज्ञात लेखक नहीं है, इसलिए primary_author
है NULL
।
इस मामले में, हम केवल पहले चार . वाले परिणामों के लिए क्वेरी करना चाह सकते हैं रिकॉर्ड, इस प्रकार अंतिम दो रिकॉर्ड को छोड़कर जिनमें NULL
. है या तो primary_author
. में मान या published_date
. यह AND
. का उपयोग करके इस सरल कथन के साथ किया जा सकता है कई तुलना ऑपरेटरों के साथ:
SELECT
primary_author,
published_date,
title
FROM
books
WHERE
(
primary_author IS NOT NULL
AND
published_date IS NOT NULL
);
नोट:कोष्ठक की आवश्यकता नहीं है, लेकिन बेहतर पठनीयता के लिए समूहीकृत तुलनाकर्ताओं को संलग्न करना एक अच्छा अभ्यास है।
ये लो; एक साधारण तुलना ऑपरेटर जिसका उपयोग किसी भी और सभी NULL
. को फ़िल्टर करने के लिए किया जा सकता है आपके रिकॉर्ड में मान.