用另一个表中的每个元素的列创建一个新表

时间:2018-06-24 19:30:34

标签: mysql sql database loops

我已经在MySQL中创建了一个表,其中有要从FRED数据中引入的所有数据名称。

enter image description here

现在,我想创建一个新表,上面的示例表中的1504个名称每个都有一列。

AAA AAA10M AAAFFM ADBJORNS and so on.

因此fred_namecol中的每个名称都应获得一列,每列均以数字作为值。有没有一种简便的方法可以代替手动编写每个人?

也许有一种方法可以遍历每个名​​称,并为它们在新表中添加一列?

1 个答案:

答案 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;