在MySQL中使用多个数据集作为筛选器获取筛选数据

在MySQL中使用多个数据集作为筛选器获取筛选数据,mysql,wordpress,Mysql,Wordpress,我正在尝试构建一个过滤器来过滤具有多个参数的用户。我意识到下面的查询是针对post-meta的,但它的工作原理是相同的,并且在我这边更容易测试 SELECT * FROM wp_postmeta WHERE (meta_key="_regular_price" AND meta_value="295") AND (meta_key="_weight" AND meta_value="2.5") 当我执行上述代码时,我没有得到任何结果,但是如果我将两组括号之间的AND改为OR,它将返回两个

我正在尝试构建一个过滤器来过滤具有多个参数的用户。我意识到下面的查询是针对post-meta的,但它的工作原理是相同的,并且在我这边更容易测试

SELECT * 
FROM wp_postmeta 
WHERE (meta_key="_regular_price" AND meta_value="295") 
AND (meta_key="_weight" AND meta_value="2.5")
当我执行上述代码时,我没有得到任何结果,但是如果我将两组括号之间的AND改为OR,它将返回两个结果,并且从中我可以看到至少有一个结果(post_id)在这两个括号中

我做错了什么?

你可以在下面试试-

SELECT * 
FROM wp_postmeta where (meta_key,meta_value) in (("_regular_price","295"),("_weight","2.5"))
你可以在下面试试-

SELECT * 
FROM wp_postmeta where (meta_key,meta_value) in (("_regular_price","295"),("_weight","2.5"))

尝试使用OR代替AND,因为一个
meta\u键
不可能同时是
\u常规价格
\u权重
尝试使用OR代替AND,因为一个
meta\u键
不可能同时是
\u常规价格
\u权重
这将返回相同的值如果我将两组括号之间的AND更改为OR,则返回结果。我正在寻找的理想结果将只返回一个或两个与两个参数匹配的记录。如果我将两组括号之间的AND更改为or,则返回相同的结果。我正在寻找的理想结果将只返回一个或两个与这两个参数匹配的记录