इसे SQLFiddle आज़माएं :
CREATE TABLE atable (
prefix1 VARCHAR(10)
,prefix2 VARCHAR(10)
,notprefix3 INT
,notprefix4 INT
);
INSERT INTO atable VALUES ('qwer qwer', 'qwerqwer', 1, 1);
INSERT INTO atable VALUES ('qwer qwer', 'asdfaasd', 1, 1);
INSERT INTO atable VALUES ('qwer qwer', 'qrt vbb', 1, 1);
INSERT INTO atable VALUES ('qwer qwer', 'sdfg sdg', 1, 1);
SELECT CONCAT('SELECT ', GROUP_CONCAT(c.COLUMN_NAME), ' FROM atable;')
INTO @query
FROM INFORMATION_SCHEMA.COLUMNS c
WHERE c.TABLE_NAME = 'atable'
AND c.COLUMN_NAME LIKE 'prefix%'
ORDER BY c.ORDINAL_POSITION;
PREPARE stmt FROM @query;
EXECUTE stmt;
कुछ मुद्दे:
आप शायद अपने परिणाम सेट पर किसी प्रकार का ORDER BY चाहते हैं।
जुड़ने और चीजों के मामले में आप क्या कर सकते हैं इसकी एक सीमा है।
आप सत्यापन को उस रनटाइम पर ले जाते हैं जहां परीक्षण द्वारा इसके छूटने की अधिक संभावना होती है।
आप स्कीमा परिवर्तनों को आसानी से संभालने में सक्षम होने की उम्मीद कर रहे हैं। यह तकनीक केवल एक निश्चित प्रकार के स्कीमा परिवर्तनों को संभालेगी जिन्हें आप देख सकते हैं, और अन्य आपको शायद इस कोड को वैसे भी बदलना होगा।