2011-10-12 10 views
8

SQLF में नीचे क्वेरी में दिखाए गए अनुसार IF EXISTS कैसे लिखें? मैंने कहीं पढ़ा है कि यदि खंड SQLite में मौजूद नहीं है। इसके लिए एक बेहतर विकल्प क्या होगा?SQLite IF क्लॉज

if exists (select username from tbl_stats_assigned where username = 'abc') 
    select 1 as uname 
else 
    select 0 as uname 
+0

आपको एक टेबल की आवश्यकता होगी जिसमें सभी उपयोगकर्ता नाम शामिल हैं या नहीं (इस मामले में, सभी उपयोगकर्ताओं को सूचीबद्ध करने वाली तालिका)। आप किसी ऐसे मान के लिए परिणाम सेट में रिकॉर्ड नहीं लौटा सकते जो मौजूद नहीं है डेटाबेस में कहीं भी कुछ तालिका है। –

+0

धन्यवाद लैरी। यहां, मैं सिर्फ एक रिकॉर्ड प्राप्त करने की कोशिश नहीं कर रहा हूं, यह जांच कर रहा हूं कि कोई मिलान नहीं मिला है या नहीं। – thinkster

+1

फिर डेटाबेस से बात करने के लिए आप जिस भी भाषा का उपयोग कर रहे हैं उस तालिका के विरुद्ध एक SELECT कथन निष्पादित करें। यह निर्धारित करने के लिए कि क्या इसकी कोई पंक्ति है या नहीं, रिटर्न परिणाम सेट की जांच करें। कोई पंक्ति का मतलब तालिका में कोई उपयोगकर्ता नहीं है। –

उत्तर

16

बस इसे मानक SQL तरीके से करना:

select exists(
    select 1 
    from tbl_stats_assigned 
    where username = 'abc' 
); 

निश्चित रूप से यह मानते हुए कि आपके 1 और 0 वास्तव में बूलियन मान (जो SQLite एक और शून्य सिर्फ MySQL की तरह साथ प्रतिनिधित्व करता है) कर रहे हैं।

यह किसी भी SQL डेटाबेस में काम करना चाहिए और कुछ लोगों को उस मुहावरे का समर्थन करने के लिए विशेष अनुकूलन भी होना चाहिए।

+0

धन्यवाद कि काम किया! – thinkster