Wordpress WPDB SQL - 如何查询两个 meta_key

Wordpress WPDB SQL - How to query two meta_key

我正在尝试使用我的代码同时查询两个元键:

SELECT * FROM wp_postmeta

WHERE meta_key = "listing_location_enabled"
AND meta_value = "yes"

AND meta_key = "listing_location_country"
AND meta_value = "INDIA"

但是没有显示任何结果。我的查询是否正确?

不,您的查询不正确。 (那些元表是臭名昭著的 xxx 脖子痛,无法正确使用。)您需要这种查询模式。它将 wp_postmeta 连接到自身。

SELECT lle.post_id,
       lle.meta_value listing_location_enabled.
       llc.meta_value listing_location_country
 
  FROM wp_postmeta lle
  JOIN wp_postmeta llc  ON lle.post_id = llc.post_id
 WHERE lle.meta_key = 'listing_location_enabled'
   AND lle.meta_value = 'yes'
   AND llc.meta_key = 'listing_location_country'
   AND llc.meta_value = 'INDIA'

或者,更好的是,如果您正在为 WordPress 编写代码,请使用它的 WP_Meta_Query 工具。

$q = new WP_Query( array(
    'meta_query' => array(
        'relation' => 'AND',
        'lle' => array(
            'key' => 'listing_location_enabled',
            'value' => 'yes',
        ),
        'llc' => array(
            'key' => 'listing_location_country',
            'value' => 'INDIA',
        ), 
    )
) );