Coba SQLFiddle ini :
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;
Beberapa masalah:
Anda mungkin menginginkan semacam ORDER BY pada kumpulan hasil Anda.
Ada batasan untuk apa yang dapat Anda lakukan dalam hal bergabung dan lainnya.
Anda memindahkan validasi ke waktu proses yang kemungkinan besar terlewatkan oleh pengujian.
Anda berharap dapat menangani perubahan skema dengan mudah. Teknik ini hanya akan menangani perubahan skema dari jenis tertentu yang dapat Anda ramalkan, dan yang lain Anda mungkin harus mengubah kode ini.