2013-02-12 47 views
0

我在wordpress表格(postmeta)上查詢。該表中有鍵和值,我需要一個查詢,將獲得匹配「key1」等於「value1」和「key2」等於value2排序值的所有行「value2」mySQL查詢鍵值對

表基本上有一個id,postid ,鍵和值列。

我不確定從哪裏開始。我可以找到一個值罰款ie ... where key ='featured'& value = true。但我需要按行數值排序的top 25,其中key ='hits'意思是我需要這些特色行的相應匹配值的值

我不知道如何做到這一點。

TIA

+0

你有什麼試過自己?你還可以向我們展示postmeta的表格定義嗎?我建議使用http://sqlfiddle.com/來舉例說明數據庫和查詢。 – Wolph 2013-02-12 01:52:34

回答

0

很難準確地說出如何用您提供的有限細節來做到這一點。但是當你想返回鍵/值對時,你可以使用下面的代碼。

你可以加入你的桌子上多次:

select p1.postid, 
    p1.value Featured, 
    p2.value Hits 
from postmeta p1 
left join postmeta p2 
    on p1.postid = p2.postid 
    and p2.key = 'hits' 
where p1.key ='featured'; 

SQL Fiddle with Demo

或者你可以使用聚合函數與CASE表達式(使用sum()假設數值,您可以使用max()/min()字符串值:

select postid, 
    sum(case when `key` = 'featured' then value end) Featured, 
    sum(case when `key` = 'hits' then value end) Hits 
from postmeta 
group by postid 

請參閱SQL Fiddle with Demo

+0

這非常有幫助。我明天再試。謝謝 – Jeff 2013-02-12 02:54:56