एक तालिका के सभी कॉलम जोड़ के लिए, आपको *
कीवर्ड का उपयोग नहीं कर सकते हैं, लेकिन आप स्पष्ट रूप से सभी स्तंभों को सूचीबद्ध करने की आवश्यकता:
SELECT CONCAT(col1, col2, col3, ....)
FROM yourtable
या आप CONCAT_WS
उपयोग करने के लिए है कि शून्य मान को छोड़ देगा चाहते हो सकता है:
SELECT CONCAT_WS(',', col1, col2, col3, ....)
FROM yourtable
यदि आप मैन्युअल रूप से सभी कॉलम नाम निर्दिष्ट नहीं करना चाहते हैं, तो आप एक डायनेमिक क्वेरी का उपयोग कर सकते हैं। इस क्वेरी अपनी तालिका के सभी कॉलम नामों में वापस आ जाएगी:
SELECT `column_name`
FROM `information_schema`.`columns`
WHERE `table_schema`=DATABASE()
AND `table_name`='yourtable';
और group_concat का उपयोग कर आप सभी कॉलम नामों की सूची प्राप्त कर सकते हैं:,
GROUP_CONCAT(CONCAT('`', column_name, '`'))
उद्धृत एक अल्पविराम से अलग प्रारूप में:
`col1`,`col2`,`col3`,`col4`,...
तो अब हमारे पास हमारे प्रश्नों को द्विपक्षीय रूप से बनाने के लिए सभी तत्व हैं:
SELECT
CONCAT(
'SELECT CONCAT_WS(\'\',',
GROUP_CONCAT(CONCAT('`', column_name, '`') ORDER BY column_name),
') AS all_columns FROM yourtable;')
FROM `information_schema`.`columns`
WHERE `table_schema`=DATABASE()
AND `table_name`='yourtable'
INTO @sql;
इस क्वेरी की तरह कुछ करने के लिए @sql स्ट्रिंग सेट हो जाएगा:
SELECT CONCAT_WS('', col1, col2, col3, ....) AS all_columns FROM yourtable
और इस कोड को निष्पादित होगा:
PREPARE stmt FROM @sql;
EXECUTE stmt;
कृपया बेला here देखते हैं।
ऐसी कार्यक्षमता के लिए व्यावहारिक उपयोग क्या होगा? –
कॉलम की सूची प्राप्त करने के लिए आप 'info_schema.columns' से पूछ सकते हैं और उन्हें स्वयं क्वेरी में डाल सकते हैं। –
खैर, मान लीजिए कि मेरे पास 100 कॉलम हैं और वे सभी को अल्पविराम से अलग स्ट्रिंग के साथ संयोजित करना चाहते हैं। मैन्युअल रूप से 100 कॉलम नाम दर्ज करने के लिए काफी कुछ काम होगा। लेकिन फिर भी पहली जगह * कीवर्ड क्यों है? – Blub