2013-04-05 28 views
0

我想加入WooCommerce创建的后期元字段以在一行中显示客户端的姓和名。在MySQL中结合两行以将数据显示为一行

的MySQL表结构如下:

meta_id post_id meta_key    meta_value 
======= ======= =======     =========== 
1234  1874  _billing_first_name  John 
1235  1874  _billing_last_name  Cobe 

现在我想它用mysql语句

post_id _billing_first_name _billing_last_name 
======= ==================== ================== 
1874  John     Cobe 

期待您的建议和帮助下返回下面的结果。

谢谢。

回答

4

如果您有meta_key两个固定值,可以使用这样的事情:

SELECT 
    post_id, 
    MAX(CASE WHEN meta_key='_billing_first_name' THEN meta_value END) _billing_first_name, 
    MAX(CASE WHEN meta_key='_billing_last_name' THEN meta_value END) _billing_last_name 
FROM 
    yourtable 
GROUP BY 
    post_id 
+0

非常感谢为例,它正是我一直在寻找。 – user2248391 2013-04-07 17:43:11

0

看看在PIVOT功能。我认为它会为你完美工作。
这里是SQL Fiddle

 
SELECT * 
FROM 
(
    SELECT post_id, meta_key, meta_value 
    FROM table_name WHERE post_id = 1874 
) as x 
PIVOT 
(
    MAX(meta_value) 
    FOR meta_key IN ([_billing_first_name], [_billing_last_name]) 
) as p 
+0

MySQL没有透视功能。 – Taryn 2013-04-05 10:54:53

+0

没有看到MySQL标签,太糟糕了 – 2013-04-05 11:02:32

相关问题