簡體   English   中英

SQL如何使用響應值將具有相同post_id的多行組合成一個列來創建列

[英]SQL How to combine multiple rows with same post_id into one using response values to create columns

我很確定我的問題有非常簡單的解決方案,並且之前在某個地方被問過,所以我相信你幫助我沒什么大不了的。

首先我有疑問:

SELECT * 
FROM wp_postmeta 
WHERE post_id = 340 
AND (
     meta_key = '_regular_price' 
     OR meta_key = 'multiplier' 
     OR meta_key = 'multiplier_filter' 
     OR meta_key = 'price_filter' 
     OR meta_key = 'attribute_size' 
     OR meta_key = 'live_update'
    );

如您所見,我使用 wordpress 並且這里的所有內容都有效,但我想更改對響應的解釋。

現在看起來像:

meta_id post_id 元密鑰 元值
8197 200 價格 100
9209 200 篩選 2
9208 200 更新 真的

但如果它開始以這種格式給出響應,那將是理想的:

post_id 價格 篩選 更新
200 100 2 真的

使用透視查詢:

SELECT post_id,
       MAX(CASE WHEN meta_key = 'price'  THEN meta_value END) AS price,
       MAX(CASE WHEN meta_key = 'filter' THEN meta_value END) AS filter,
       MAX(CASE WHEN meta_key = 'update' THEN meta_value END) AS `update`
FROM yourTable
GROUP BY post_id;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM