假设我有下表,只有一列:
表_1
-----------
| nameCol |
-----------
| A |
| A |
| B |
| C |
-----------
我想用以下列名称创建一个新表:
表_2
| pk | A | B | C |
即一张表的数据成为第二张表的列名。 可能在某种程度上涉及一个支点,但我无法真正得到答案。
我试过:
create table Table_2 (
select group_concat(distinct(nameCol), " varchar(50), ")
from Table_1
);
最佳答案
您可以使用动态查询:
SELECT
CONCAT(
'CREATE TABLE Table_2 (',
GROUP_CONCAT(DISTINCT
CONCAT(nameCol, ' VARCHAR(50)')
SEPARATOR ','),
');')
FROM
Table_1
INTO @sql;
PREPARE stmt FROM @sql;
EXECUTE stmt;
请参阅 fiddle here .
关于mysql - 使用从另一个表的行值派生的列名创建一个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15820082/