MySQL在wp_postmeta中的多行中插入规范化数据

时间:2013-02-22 19:32:02

标签: mysql wordpress

我正在尝试在wp_postmeta中插入多行。我无法弄清楚正确的SQL查询来实现它。 我面临的问题是我目前的数据如下:

Col 1  | Col 2  | Col 3  | Col 4  | Col5
----------------------------------------
A      | B      | C      | D      | E
F      | G      | H      | I      | J

我需要将它插入到wp_postmeta中:

Col 1  | Col 2  | Col 3  
-----------------------
A      | txt    | B
A      | txt    | C
A      | txt    | D
A      | txt    | E
F      | txt    | G
F      | txt    | H
F      | txt    | I
F      | txt    | J

“txt”数据不是问题,我只是试图找出一种方法来“反规范化”源数据中的每一行,并将其存储在另一个表中的四个不同的行中。

1 个答案:

答案 0 :(得分:0)

您可以使用UNION ALL查询取消数据,该查询从列中获取数据并将其转换为行:

select `col 1`, `col 2` as val
from yourtable
union all
select `col 1`, `col 3` as val
from yourtable
union all
select `col 1`, `col 4` as val
from yourtable
union all
select `col 1`, `col5` as val
from yourtable
order by 1

请参阅SQL Fiddle with Demo

将数据转换为此格式后,您可以INSERT将其转换为另一个表格。