2014-02-13 27 views
2

完全新的MySQL和我試圖提取一些數據 - 我期待這是一個相對簡單的任務,但我並沒有意識到,數據提取的「格式」不會有我期望的列標題。我做了一些研究,認爲我是非常接近的答案,在這裏提供:使Meta_Key列標題

SQL - How to transpose?

然而,寫我的查詢時,我得到一個語法錯誤。

因此,這裏是我申請的代碼(使用小常識摸出我的具體值,雖然可能已經完全錯過了標記!)

SELECT wp_usermeta.User_ID 
    MAX(CASE WHEN wp_usermeta.meta_key = 'nickname' THEN wp_usermeta.meta_value ELSE NULL END) AS 'nickname', 
    MAX(CASE WHEN wp_usermeta.meta_key = 'sex' THEN wp_usermeta.meta_value ELSE NULL END) AS 'sex' 
FROM wp_usermeta 
GROUP BY wp_usermeta.User_ID 

我得到的錯誤是#1064建議檢查第2行附近的語法'MAX(CASE WHEN wp_usermeta.meta_key ='nickname'THEN wp_usermeta.meta_value ELSE'

我確定這是一個簡單的語法錯誤,但我無法工作out!

非常感謝,

斯圖爾特

+0

是的,你錯過了一個逗號。保持良好的工作。 – Strawberry

+0

假設你的意思是在第3行的結尾,所以它應該是:MAX(當wp_usermeta.meta_key ='sex'THEN wp_usermeta.meta_value ELSE NULL END)AS'sex', – user3307899

+0

@ user3307899試試這個'SELECT wp_usermeta.User_ID, MAX(CASE WHEN wp_usermeta.meta_key ='nickname'THEN wp_usermeta.meta_value ELSE NULL END)AS'nickname', MAX(CASE WHEN wp_usermeta.meta_key ='sex'THEN wp_usermeta.meta_value ELSE NULL END)AS'sex' FROM wp_usermeta GROUP BY wp_usermeta.User_ID' –

回答

0

WordPress中,你可以使用類WPDB從原始查詢

global $wpdb; 
$results=$wpdb->get_results("SELECT wp_usermeta.User_ID, 
    MAX(CASE WHEN wp_usermeta.meta_key = 'nickname' THEN wp_usermeta.meta_value ELSE NULL END) AS 'nickname', 
    MAX(CASE WHEN wp_usermeta.meta_key = 'sex' THEN wp_usermeta.meta_value ELSE NULL END) AS 'sex' 
FROM wp_usermeta 
GROUP BY wp_usermeta.User_ID"); 
if(!empty($results)){ 
foreach($results as $r){ 
echo $r->User_ID ."<br />"; 
echo $r->nickname ."<br />"; 
echo $r->sex ."<br />"; 
} 
} 

Wordpress Class WPDB

+0

感謝您的Khalid - 上面缺少逗號回答,我感到非常滿意 - 這正是我需要的。 – user3307899

+0

@ user3307899如果上面的答案有幫助,然後閱讀[接受答案:它是如何工作的?](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work/5235#5235 ) –

0

檢索結果如果你寫你選擇這個方式,那麼可以永遠不會發生的問題...

SELECT m.User_ID 
    , MAX(CASE WHEN m.meta_key = 'nickname' THEN m.meta_value END) nickname 
    , MAX(CASE WHEN m.meta_key = 'sex' THEN m.meta_value END) sex 
    FROM wp_usermeta m 
GROUP 
    BY m.User_ID