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

hmmo2u0o  于 2021-06-24  发布在  Mysql
关注(0)|答案(1)|浏览(335)

我已经在mysql中创建了一个表,其中包含了我将从fred data引入的所有数据的名称。

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

AAA AAA10M AAAFFM ADBJORNS and so on.

所以fred\u namecol中的每个名称都应该得到一列,每个列的值都是数字。有没有一种简单的方法来代替手动编写每个人的代码?
也许有一种方法太过循环每个名称并为它们创建一列到一个新表中?

zzwlnbp8

zzwlnbp81#

对。有办法。
在下面的查询中;用包含fred\u namecol列的表的名称替换此处的write\u your\u table\u name\u:

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;

相关问题