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

MySQL केवल अशक्त मान नहीं चुनें

आपको IS NOT NULL . का उपयोग करना चाहिए . (तुलना ऑपरेटर = और <> दोनों UNKNOWN give देते हैं NULL . के साथ अभिव्यक्ति के दोनों ओर।)

SELECT * 
FROM table 
WHERE YourColumn IS NOT NULL;

केवल पूर्णता के लिए मैं उल्लेख करूंगा कि MySQL में आप शून्य सुरक्षित समानता ऑपरेटर लेकिन यह मानक SQL नहीं है।

SELECT *
FROM table 
WHERE NOT (YourColumn <=> NULL);

टिप्पणियों को प्रतिबिंबित करने के लिए संपादित किया गया। ऐसा लगता है कि आपकी तालिका पहले सामान्य रूप में नहीं हो सकती है, ऐसे में संरचना को बदलने से आपका काम आसान हो सकता है। हालांकि इसे करने के कुछ अन्य तरीके...

SELECT val1 AS val
FROM  your_table
WHERE val1 IS NOT NULL
UNION ALL
SELECT val2 
FROM  your_table
WHERE val2 IS NOT NULL
/*And so on for all your columns*/

उपरोक्त का नुकसान यह है कि यह प्रत्येक कॉलम के लिए तालिका को कई बार स्कैन करता है। यह संभवतः नीचे से बचा जा सकता है लेकिन मैंने MySQL में इसका परीक्षण नहीं किया है।

SELECT CASE idx
         WHEN 1 THEN val1
         WHEN 2 THEN val2
       END AS val
FROM   your_table
        /*CROSS JOIN*/
       JOIN (SELECT 1 AS idx
                   UNION ALL
                   SELECT 2) t
HAVING val IS NOT NULL  /*Can reference alias in Having in MySQL*/


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एसिंक्रोनस स्लेव्स का उपयोग करके गैलेरा क्लस्टर में हाइब्रिड OLTP/Analytics डेटाबेस वर्कलोड

  2. मैं तालिका में एकाधिक चेकबॉक्स मान कैसे सम्मिलित करूं?

  3. PHP का उपयोग कर सर्वर पर छवि अपलोड करते समय अन्य जानकारी के साथ डेटाबेस में फ़ाइल नाम कैसे स्टोर करें?

  4. मैं एकाधिक रिकॉर्ड्स में स्ट्रिंग्स को बदलने के लिए mySQL रिप्लेस () का उपयोग कैसे कर सकता हूं?

  5. कैसे जांचें कि कोई तालिका MySQL में बनाने से पहले पहले से मौजूद है या नहीं?