我有表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。

最佳答案

这样做:

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相比较。

关于php - 如何获得具有不同键条件的行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20037653/

10-10 13:59