2013-06-03 77 views
4

我想知道您是否可以根據Select語句的結果創建列。Mysql:從select語句創建列

Table 1: 

availableColumns 
----------------- 
column1 -> record 1 
column2 -> record 2 
column3 -> record 3 

所以,如果我做了一個選擇availableColumns從表1,我怎麼可能創建那麼以下結構的表,結果必須被用來創建列:

column1 | column2 | column3 

如果我嘗試:

CREATE TABLE test SELECT availableColumns FROM table1 

我得到如下:

Column 
------ 
Column1 
Column2 
Column3 

因此,而不是列,我得到我的結果作爲我不想要的行。

感謝提前:)

回答

3

您可以通過從Information Schema表中選擇他們有特定表的列清單

SELECT `COLUMN_NAME` 
FROM `INFORMATION_SCHEMA`.`COLUMNS` 
WHERE `TABLE_SCHEMA`='databasename' 
AND `TABLE_NAME`='tablename'; 

要創建表只是用它

CREATE TABLE test SELECT `COLUMN_NAME` FROM `INFORMATION_SCHEMA`.`COLUMNS` WHERE `TABLE_SCHEMA`='databasename' AND `TABLE_NAME`='tablename'; 

只需更改'databasename''tablename'以符合您的實際數據庫和表格

+0

但是,這不會將這些列作爲列添加到新表:)該查詢的結果應該用於創建我的新表的列。 – darkownage

+0

@darkownage我已經更新了我的答案,請檢查它 – Fabio

+1

然後將結果作爲1列中的記錄插入,而不是創建10列:) – darkownage