我已经在MySQL中创建了一个表,其中有要从FRED数据中引入的所有数据名称。
现在,我想创建一个新表,上面的示例表中的1504个名称每个都有一列。
AAA AAA10M AAAFFM ADBJORNS and so on.
因此fred_namecol中的每个名称都应获得一列,每列均以数字作为值。有没有一种简便的方法可以代替手动编写每个人?
也许有一种方法可以遍历每个名称,并为它们在新表中添加一列?
答案 0 :(得分:0)
是的。有一种方法。
在以下查询中; 替换 WRITE_YOUR_TABLE_NAME_HERE为包含 fred_namecol 列的表的名称:
drop table if exists columns_over_1000;
set @prefix = 'CREATE TABLE columns_over_1000 (';
set @suffix = '\n);';
select @create_table_sql := concat(
@prefix,
group_concat('\n `', fred_namecol, '` INT'),
@suffix)
from `WRITE_YOUR_TABLE_NAME_HERE`;
PREPARE stmt1 FROM @create_table_sql;
EXECUTE stmt1;
DEALLOCATE PREPARE stmt1;
select * from columns_over_1000;