2013-04-11 49 views
1

如果有一个帖子,如何获得通过多meta_value与SQL查询POST_ID

id = 10 

meta_key = size 
meta_value = xxl 

meta_key = color 
meta_value = red 

我怎样才能得到这个post_idSQL像这

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

回答

0

你的基本查询会be

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 demo