Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL concat() zum Erstellen von Spaltennamen, die in einer Abfrage verwendet werden sollen?

Ich habe zuvor gesagt, dass dies nicht möglich sei, aber ich habe mich geirrt. Am Ende brauchte ich selbst so etwas, also sah ich mich um und entdeckte, dass serverseitig vorbereitete Statements lassen Sie beliebige SQL-Anweisungen aus Strings erstellen und ausführen.

Hier ist ein Beispiel, das ich gerade gemacht habe, um das Konzept zu beweisen:

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
;