2013-04-12 3 views
18

मैं अगर एक क्षेत्र शून्य या खाली एक MySQL क्वेरी का उपयोग है देखने के लिए जाँच करना चाहते हैं, मैं जानता हूँ कि मैं कुछ इस तरह कर सकते हैं:MySQL में, क्या आप जांच सकते हैं कि कोई फ़ील्ड केवल एक तुलना का उपयोग करके शून्य या खाली है या नहीं?

column = '' OR column IS NULL 

हालांकि, वहाँ दो अलग-अलग कर के बिना इस जांच करने के लिए किसी भी तरह से है तुलना?

उत्तर

0

इस प्रयास करें:

WHERE NOT(column LIKE '_%') 

नहीं के बिना, स्तंभ के मूल्य कम से कम एक वर्ण होना चाहिए और NULL नहीं हो सकता।

संपादित करें: MySQL अभी भी इस तरह के मूल्य को निगलने लगता है। यह बेहतर काम करना चाहिए:

WHERE IFNULL(column, '') = '' 
+0

[काम करने के लिए प्रतीत नहीं होता है] (http://sqlfiddle.com/#!9/e6c26/ 1) – Kermit

27

उपयोग COALESCE() 'सामान्य' के लिए मूल्य (रिक्त स्ट्रिंग पर शून्य मान परिवर्तित);

WHERE COALESCE(mycolumn, '') = '' 

प्रलेखन पढ़ें: COALESCE()

या दूसरी तरह के आसपास; खाली तारों को नल में परिवर्तित करें;

WHERE NULLIF(mycolumn, '') IS NULL 

प्रलेखन: NULLIF()

उन दो में से

, मैं COALESCE() पसंद करेंगे के रूप में यह ANSI SQL मानक का हिस्सा है

आप इसे खुद के लिए, बस यह करने के लिए प्रयोग कर सकते हैं;

SELECT 
    mycolumn      AS orig_value, 
    COALESCE(mycolumn, '')  AS coalesce_value, 
    (COALESCE(mycolumn, '') = '') AS compare_result 

FROM mytable; 

यह मूल मान, 'सम्मिलित' मान और बिना कहां, इस कोशिश तालिका

+0

क्या इसका नकारात्मक संस्करण केवल 'कहां COALESCE (mycolumn,' ') <>' ''होगा? – vertigoelectric

+0

हां, COALESCE ** पहला गैर-शून्य मान ** देता है। इसलिए, यदि 'mycolumn' 'NULL' है, तो यह' 'वापस आ जाएगा। यदि 'mycolumn' * कोई अन्य मान * है (एक खाली स्ट्रिंग समेत),' mycolumn' का मान वापस कर दिया जाएगा। – thaJeztah

+1

@vertigoelectric क्या आप इस प्रश्न को "उत्तर" के रूप में बना सकते हैं? – thaJeztah

3
WHERE COALESCE(column, '') = '' 
+0

एलओएल, ऐसा लगता है कि हमने एक ही समय में एक ही समाधान पोस्ट किया :) – thaJeztah

+0

@thaJeztah lol हाँ केवल 2 सेकंड अलग: पी – Esailija

1

एक अन्य विधि में हर पंक्ति के लिए कंधे से तुलना करने का परिणाम दिखाई देंगे ..

दोनों खाली चुन लिए जाएँगे और शून्य मान

SELECT ISNULL(NULLIF(fieldname,'')) FROM tablename 
संबंधित मुद्दे

 संबंधित मुद्दे