2012-05-16 229 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对不会彼此相邻,因此您可能需要创建索引。