Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.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
如何从MySQL上的单个查询中搜索不同行的相同值_Mysql_Wordpress - Fatal编程技术网

如何从MySQL上的单个查询中搜索不同行的相同值

如何从MySQL上的单个查询中搜索不同行的相同值,mysql,wordpress,Mysql,Wordpress,我有这张桌子“post_meta” post_id name value 87 my_keyname1 randval1 87 my_keyname2 randval2 我想搜索两个不同的行,并想返回一个post\u id。我知道“name”和“value”的所有值,并且我想满足我的查询,即我得到了具有两个不同“name”和“value”行的相同post\u id。如果您只筛选表中感兴趣的记录,然后按post\u id分组,您想要的结果是那些正好包含两个不同记

我有这张桌子“post_meta”

post_id name        value
87      my_keyname1 randval1
87      my_keyname2 randval2

我想搜索两个不同的行,并想返回一个post\u id。我知道“name”和“value”的所有值,并且我想满足我的查询,即我得到了具有两个不同“name”和“value”行的相同post\u id。

如果您只筛选表中感兴趣的记录,然后按post\u id分组,您想要的结果是那些正好包含两个不同记录的组:

SELECT DISTINCT post_id FROM post_meta
WHERE (name = 'my_keyname1' AND value = 'randval1')
OR (name = 'my_keyname2' AND value = 'randval2');
SELECT   post_id
FROM     post_meta
WHERE    (name = 'my_keyname1' AND value = 'randval1')
      OR (name = 'my_keyname2' AND value = 'randval2')
GROUP BY post_id
HAVING   COUNT(DISTINCT name, value) = 2

如果保证组中每个记录的名称或值都是唯一的,您可以用COUNT*替换COUNTDISTINCT name,value以获得更好的性能。

这将只查询1行。我需要2行具有与我的姓名、值匹配的相同post_id。我需要满足第二行也具有该值的查询。这是wordpress上的一篇博文。我编辑了我的问题,希望你能理解我的观点,在解释我的问题时有点困难。