2012-01-30 13 views
5

में मौजूद नहीं होने पर शून्य के रूप में एक फ़ील्ड चुनें, मुझे उस तालिका पर एक SELECT का उपयोग करना पसंद है जिसमें शायद कुछ फ़ील्ड हो, लेकिन शायद नहीं। यदि नहीं, तो मूल्य वापस लौटाया जा सकता है क्योंकि जॉइन बाएं मौजूदा पंक्तियों के लिए नहीं करेंगे।MySQL तालिका को

ईजी। इस छद्म एसक्यूएल की तरह कुछ:

SELECT id, email IF EXISTS, name, address FROM users; 

एक 'ईमेल' क्षेत्र के बिना एक मेज 'उन' पर त्रुटियों के बिना चला लेकिन फिर लौट ईमेल = शून्य चाहिए।

+5

क्यों आप तालिका की संरचना को पता नहीं होगा? – MMM

+0

यह सहायक हो सकता है: http://stackoverflow.com/questions/5448518/query-to-check-if-field-exists-and-then-return-the-result-set –

+0

मैं एक टेबल की संरचना प्राप्त कर सकता हूं अन्य एसक्यूएल बयान के साथ, लेकिन यह जटिल और महंगा है। दूसरी तरफ, 'SELECT *' सभी मौजूदा कॉलम आउटपुट करेगा, बिना किसी आवश्यकता के जानने के पहले। तो मुझे पूर्व सुविधा के बिना यह सुविधा मिलना पसंद है। – dronus

उत्तर

2

आप क्या चाहते हैं शुद्ध SQL में किया जाना चाहिए।

अनिवार्य रूप से, आप SQL चाहते हैं जो सशर्त रूप से ऐसे कॉलम का चयन कर सके जो अस्तित्व में न हो। इस तरह के एसक्यूएल को पार्स नहीं किया जा सका - चयनित सभी कॉलम मौजूद हैं या क्वेरी अमान्य होगी।

हालांकि आप डेटाबेस से जुड़े स्कीमा का निरीक्षण करने के लिए कैटलॉग टेबल से पूछकर यह कोड कोड प्राप्त कर सकते हैं और गतिशील रूप से उस पर आधारित SQL बना सकते हैं।

इस क्वेरी आपकी क्वेरी के निर्माण के लिए अपने ऐप्लिकेशन कोड में मदद कर सकते हैं:

select COLUMN_NAME 
from INFORMATION_SCHEMA.COLUMNS 
where TABLE_NAME = 'users' 
and TABLE_SCHEMA = 'YOUR-DB-NAME'; 
संबंधित मुद्दे