如何获取具有不同键的条件的行

时间:2013-11-17 23:34:51

标签: php mysql wordpress

我有表wp_postmeta,如:

meta_id  post_id    meta_key    meta_value
--------------------------------------------
4175     1347       name        Dubovka
4176     1347       type        agro
4177     1347       region      1
4181     1348       name        Victoria
4181     1348       type        hotel
4181     1348       region      2

如果我知道名称,类型,地区的值,如何获取唯一的帖子ID? 它需要在查询中使用JOIN。

1 个答案:

答案 0 :(得分:2)

这样做:

SELECT post_id FROM wp_postmeta
GROUP BY post_id
HAVING SUM(
  (meta_key = 'name' AND meta_value = 'Dubovka') +
  (meta_key = 'type' AND meta_value = 'agro') +
  (meta_key = 'region' AND meta_value = '1')
) = 3

输出:

| POST_ID |
|---------|
|    1347 |

小提琴here

考虑到要在括号中匹配的每个条件意味着您必须增加SUM比较的单位。在这种情况下,3个条件意味着我将SUM与3进行比较。