使用Wordpress wp_postmeta表中的数据创建新表

时间:2014-07-08 11:04:13

标签: mysql sql wordpress dbmigrate database-metadata

目标是迁移与存储在Wordpress表(在本例中为信用卡)中的产品定义相关的数据。

以下是我要迁移的数据示例:

SELECT meta_key, meta_value FROM wp_postmeta WHERE post_id = 366;

+-----------------+------------------------------------+
| meta_key        | meta_value                         |
+-----------------+------------------------------------+
| Name            | Santos Futebol Clube International |
| Issuer          | Bradesco Banco                     |
| Issuer_Subtype  | Bradesco                           |
+-----------------+------------------------------------+

还有更多字段,但我只是举例说明其中的三个字段。 还有许多产品(每个帖子代表一个项目)。

我想将这些数据迁移到具有以下结构的表中:

DESCRIBE card;

+-----------------------+--------------+------+-----+---------+----------------+
| Field                 | Type         | Null | Key | Default | Extra          |
+-----------------------+--------------+------+-----+---------+----------------+
| id                    | int(11)      | NO   | PRI | NULL    | auto_increment |
| name                  | varchar(255) | YES  |     | NULL    |                | 
| issuer                | varchar(255) | YES  |     | NULL    |                |
| issuer_subtype        | varchar(255) | YES  |     | NULL    |                |
+-----------------------+--------------+------+-----+---------+----------------+

由于表示每个项目的Wordpress表中的数据位于不同的行中,因此我在试图掌握如何进行查询以解决此问题时遇到了问题。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

按每个post_id分组。然后,您可以根据案例选择meta_value作为您喜欢的密钥。您必须使用聚合函数。我选择了max(),但这没关系。

select post_id, 
       max(case when meta_key = 'Name' then meta_value end) as Name,
       max(case when meta_key = 'Issuer' then meta_value end) as Issuer,
       max(case when meta_key = 'Issuer_Subtype' then meta_value end) as Subtype
FROM wp_postmeta
group by post_id