8

假设我有一个带有单列的下表:

表格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
);
4

1 回答 1

4

您可以使用动态查询:

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;

在此处查看小提琴。

于 2013-04-04T19:38:27.717 回答