1

WooCommerce が作成した投稿メタ フィールドを結合して、クライアントの姓名を 1 行にまとめて表示したいと考えています。

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

2 に答える 2

5

meta_key に 2 つの固定値がある場合、次のようなものを使用できます。

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
于 2013-04-05T09:54:10.253 に答える
0

PIVOT関数を見てみましょう。私はそれがあなたにとって完璧に機能すると思います。これはSQL Fiddle
の例です

選択する *
から
(
  SELECT post_id、meta_key、meta_value
  FROM table_name WHERE post_id = 1874
) x として
ピボット
(
  MAX(メタ値)
  FOR meta_key IN ([_billing_first_name], [_billing_last_name])
) p として
于 2013-04-05T10:24:47.770 に答える