1

如果有帖子,

id = 10

meta_key = size
meta_value = xxl

meta_key = color
meta_value = red

我怎样才能post_id用这样的sql得到这个

$my_post_id = $wpdb->get_results($wpdb->prepare( " SELECT post_id FROM $wpdb->postmeta WHERE meta_value = 'xxl' "),'ARRAY_A');
4

1 回答 1

0

您的基本查询将是

SELECT post_id 
  FROM wp_postmeta 
 WHERE meta_key   IN ('size', 'color')
   AND meta_value IN ('xxl', 'red')
 GROUP BY post_id
HAVING COUNT(DISTINCT meta_key)   = 2 
   AND COUNT(DISTINCT meta_value) = 2

这是SQLFiddle演示

于 2013-06-30T03:34:15.070 回答