2014-07-08 3 views
0

목표는 Wordpress 테이블 (이 경우 신용 카드)에 저장된 제품 정의와 관련된 데이터를 마이그레이션하는 것입니다.Wordpress wp_postmeta 테이블의 데이터로 새 테이블 만들기

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 |    | 
+-----------------------+--------------+------+-----+---------+----------------+ 

, 나는 이해하려고 노력하는 데 문제가 내 이 문제를 해결할 수있는 쿼리를 작성하는 방법에 대해 자세히 알아보십시오.

제안 사항?

+0

기존 데이터베이스 테이블을 복사 하시겠습니까? – Sadikhasan

답변

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 
관련 문제