किसी तालिका के सभी स्तंभों को संयोजित करने के लिए, आप *
. का उपयोग नहीं कर सकते कीवर्ड, लेकिन आपको सभी स्तंभों को स्पष्ट रूप से सूचीबद्ध करने की आवश्यकता है:
SELECT CONCAT(col1, col2, col3, ....)
FROM yourtable
या आप CONCAT_WS
use का उपयोग करना चाह सकते हैं जो शून्य मानों को छोड़ देगा:
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;
कृपया फिडल देखें यहां ।