Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何获取具有不同键条件的行_Php_Mysql_Wordpress - Fatal编程技术网

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

Php 如何获取具有不同键条件的行,php,mysql,wordpress,Php,Mysql,Wordpress,我有如下表格: meta_id post_id meta_key meta_value -------------------------------------------- 4175 1347 name Dubovka 4176 1347 type agro 4177 1347 region 1 4181 1348 name Victoria 41

我有如下表格:

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
如果我知道name、type、region的值,如何获得唯一的post id? 它需要在查询中使用联接。

这样做:

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 |
小提琴


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

使用
DISTINCT
SQL运算符或无需感谢。这就是接受答案的目的:)