2013-06-29 26 views
0

幫我用SQL選擇值

我這裏有一個表: click here to see table

我想添加一個新行 這樣的「first name

meta_key = first_name和相應的meta_value 其中基本看起來像這樣

 
first name 
---------- 
arnold 
gear 
john 
dude 
+0

這是一個可怕的** **不好的設計 - 參見[五個簡單的數據庫設計錯誤,你應該避免(點#3)](https://www.simple-talk.com/sql/database-administration/five-simple-database-design-errors-you-should-avoid/)討論爲什麼EAV是真的非常糟糕,看到[壞CaRMa](https://www.simple-talk.com/content/article.aspx?ar一個真正的恐怖故事的EAV系統設計,毀了一個蓬勃發展的公司。 –

+0

@marc_s如果我理解正確(我不完全確定),這不是OP自己的架構選擇。這是使用WordPress的一個現實。 – peterm

回答

2

嘗試

SELECT MIN(CASE WHEN meta_key = 'first_name' THEN meta_value END) first_name, 
     MIN(CASE WHEN meta_key = 'last_name' THEN meta_value END) last_name 
    FROM wp_usermeta 
WHERE meta_key IN ('first_name','last_name') 
GROUP BY user_id 

輸出示例:

 
| FIRST_NAME | LAST_NAME | 
--------------------------- 
| Patrice | Fitzgerald | 
|  Jhon |  Doe | 
|  Mark |  (null) | 

這裏是SQLFiddle演示