2012-05-16 169 views
0

創建一個行對每一列我有以下的列的mysql表合併多個列到一個在MySQL

SNP 
Probe 
Genotype_00 
Mean_00 
Std_00 
Genotype_01 
Mean_01 
Std_01 
Genotype_11 
Mean_11 
Std_11 

我想表有以下欄目:

SNP 
Probe 
Genotype 
Mean 
Std 

每一對(SNP,探針)我有三行,一個對應於每個基因型。

例如行

rs1 probe1 AA 5.6 0.3 AG 4.3 0.2 GG 3.4 0.1 

應該轉變成

rs1 probe1 AA 5.6 0.3 
rs1 probe1 AG 4.3 0.2 
rs1 probe1 GG 3.4 0.1 

誰能幫助我找到一個辦法做到這一點? 感謝很多提前,任何建議將不勝感激

羅塞拉

回答

1

創建表與後續列。

SNP 
Probe 
Genotype 
Mean 
Std 

然後執行這些SQL語句逐一

INSERT INTO new_table 
SELECT SNP, Probe, Genotype_00, Mean_00, Std_00 
FROM old_table 

INSERT INTO new_table 
SELECT SNP, Probe, Genotype_01, Mean_00, Std_01 
FROM old_table 


INSERT INTO new_table 
SELECT SNP, Probe, Genotype_11, Mean_00, Std_11 
FROM old_table 
+0

完美的作品,非常感謝 – Rossella

0

您可以簡單地創建與SNP探頭基因型均值標準的新表,然後使用

insert into NEWTABLE 
select SNP, Probe, Genotype_00, Mean_00, Std_00 
from old table 

然後換00到01和11,再次運行查詢。

但是,由於snp對不會彼此相鄰,因此您可能需要創建索引。