使用双 WHERE 条件查询 table 中的 select (WordPress wp_postmeta table)

Query select in table with double WHERE condition (WordPress wp_postmeta table)

我正在尝试从 wp_postmeta table 中提取多个 ID,并在两个记录中检查双重 WHERE 条件:

WHERE (meta_key = 'leather' AND meta_value = 'calf') -> First record
AND
WHERE (meta_key = 'gender' AND meta_value = 'woman') -> Second record

在一家销售皮具的商店中,我需要为 WOMAN(性别)提取 CALF(皮革)产品(基于 postmeta)。

必须在两条ID相同的记录上检查条件,如图所示。

我已经尝试了来自不同帖子的十几种不同的解决方案,但直到现在都没有结果。

谢谢。

查看 wp_postmeta 中的示例 table:

您可能需要一个内部联接:

select ID from wp_posts p
INNER JOIN wp_postmeta m1 ON m1.post_id = p.ID AND m1.meta_key = 'leather' AND m1.meta_value = 'calf'
INNER JOIN wp_postmeta m2 ON m2.post_id = p.ID AND m2.meta_key = 'gender' AND m2.meta_value = 'woman'


我有一个类似的问题,但在我的情况下,两个 `meta_value` 需要相同 (`1`)

我是这样解决的:

select ...
    where (
        meta_key in ('field1', 'field2')
        and meta_value = 1
    )
    having count(distinct meta_key) = 2

您可能还需要 group by 声明