sql >> Databasteknik >  >> RDS >> Mysql

MySQL concat() för att skapa kolumnnamn som ska användas i en fråga?

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
;


  1. Hur man väljer den sista posten från MySQL-tabellen med SQL-syntax

  2. Cloud Vendor Deep-Dive:PostgreSQL på DigitalOcean

  3. SQL, hjälptalstabell

  4. Hur RTRIM() fungerar i MariaDB