Jag sa tidigare att detta inte gick att göra, men jag hade fel. Det slutade med att jag behövde något liknande själv så jag tittade runt och upptäckte att förberedda uttalanden på serversidan låter dig bygga och exekvera godtyckliga SQL-satser från strängar.
Här är ett exempel som jag just gjorde för att bevisa konceptet:
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
;