0

目標は、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                           |
+-----------------+------------------------------------+

他にもたくさんのフィールドがありますが、例として 3 つのフィールドを示します。商品アイテムも多数あります(各投稿がアイテムを表しています)。

これらのデータを次の構造のテーブルに移行したいと考えています。

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 テーブルのデータは異なる行に配置されているため、これを実現できるクエリを作成する方法について頭を悩ませています。

助言がありますか?

4

1 に答える 1

1

ごとにグループ化しますpost_idmeta_value次に、ケースで好きなキーの s を選択できます。集計関数を使用する必要があります。選び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 
于 2014-07-08T11:09:39.673 に答える