我正在对wordpress表(postmeta)进行查询。该表有键和值,我需要一个查询,使所有匹配“key1”的行等于“value1”,“key2”等于“value2”,按value2排序
该表基本上有id,postid,key和value列。
我不确定哪里可以开始。我可以找到一个很好的值,即...其中key ='featured'&值=真。但是我需要按行的值排序前25位,其中key ='hits'意味着我需要那些特色行的相应命中键的值
我不知道该怎么做。
TIA
答案 0 :(得分: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';
或者您可以使用带有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