По-рано казах, че това не може да се направи, но сгреших. В крайна сметка аз самият имах нужда от нещо подобно, така че се огледах и открих, че подготвени изявления от страна на сървъра ви позволява да създавате и изпълнявате произволни SQL изрази от низове.
Ето един пример, който току-що направих, за да докажа концепцията:
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
;