试试这个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 @queryFROM INFORMATION_SCHEMA.COLUMNS cWHERe c.TABLE_NAME = 'atable' AND c.COLUMN_NAME LIKE 'prefix%'ORDER BY c.ORDINAL_POSITION;PREPARE stmt FROM @query;EXECUTE stmt;一些问题:
您可能需要对结果集进行某种ORDER BY。
就联接和事物而言,您可以做的事情是有限的。
您将验证移至运行时,在运行时,测试很可能会错过它。
您希望能够轻松处理架构更改。该技术将仅处理您可以预见的某种类型的模式更改,而其他任何情况下您都可能不得不更改此代码。



