Hãy thử SQLFiddle này :
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;
Một số vấn đề:
Bạn có thể sẽ muốn một số loại ĐẶT HÀNG BẰNG CÁCH trên tập hợp kết quả của bạn.
Có giới hạn cho những gì bạn có thể làm về số lượt tham gia và mọi thứ.
Bạn chuyển xác thực sang thời gian chạy, nơi mà quá trình kiểm tra có nhiều khả năng bị bỏ sót.
Bạn đang hy vọng có thể xử lý các thay đổi giản đồ một cách dễ dàng. Kỹ thuật này sẽ chỉ xử lý các thay đổi lược đồ thuộc một loại nhất định mà bạn có thể thấy trước, còn những loại khác bạn có thể sẽ phải thay đổi mã này.