In precedenza ho detto che questo non poteva essere fatto, ma mi sbagliavo. Ho finito per aver bisogno di qualcosa di simile anch'io, quindi mi sono guardato intorno e ho scoperto che dichiarazioni preparate lato server ti consente di creare ed eseguire istruzioni SQL arbitrarie da stringhe.
Ecco un esempio che ho appena fatto per dimostrare il concetto:
set @query := (
select concat(
"select",
group_concat(concat("\n 1 as ", column_name) separator ','),
"\nfrom dual")
from information_schema.columns
where table_name = 'columns')
;
prepare s1 from @query
;
execute s1
;
deallocate prepare s1
;