假设我的下表包含一列:
TABLE_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
);
答案 0 :(得分:3)
您可以使用动态查询:
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;
请参阅小提琴here。