5.0.13以降、ストアドプロシージャでは、動的SQLを使用できます。
delimiter //
CREATE PROCEDURE dynamic(IN tbl CHAR(64), IN col CHAR(64))
BEGIN
SET @s = CONCAT('SELECT ',col,' FROM ',tbl );
PREPARE stmt FROM @s;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END
//
delimiter ;
動的SQLは、関数またはトリガーでは機能しません。 MySQLドキュメント を参照してください。 より多くの用途のために。