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

MySQL में बिना किसी मान के रिकॉर्ड्स का चयन कैसे करें

जबकि अधिकांश अनुप्रयोगों में सर्वर-साइड या क्लाइंट-साइड तकनीक के कुछ रूप होंगे जिनका उपयोग डेटाबेस क्वेरी परिणामों को फ़िल्टर करने के लिए किया जा सकता है जिनमें 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 . को फ़िल्टर करने के लिए किया जा सकता है आपके रिकॉर्ड में मान.


  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. MySQL शेल (प्लस MySQL राउटर) के साथ MySQL InnoDB क्लस्टर की स्थापना

  3. वचर और चार में क्या अंतर है?

  4. MySQL में मूविंग एवरेज की गणना कैसे करें

  5. 2018 में MySQL:8.0 और अन्य टिप्पणियों में क्या है