调整mysql数据库查询以过滤列值

时间:2014-12-09 15:58:10

标签: php mysql database

对于熟悉数据库查询的人来说,这应该是一个简单的问题(我刚开始学习)。

在我的多作者网站中,我使用以下函数获取用户发布的前2个类别:

// Function to get the user's top two categories
function GetTop2CategoryByUser($user_id, $taxonomy){
    global $wpdb;

    $results=$wpdb->get_results( $wpdb->prepare(
        "
       SELECT      tt.term_id as category, COUNT(p.ID) as count
       FROM        $wpdb->posts p

       JOIN        $wpdb->term_relationships tr
                   ON p.ID = tr.object_id

       JOIN        $wpdb->term_taxonomy tt
                   ON tt.term_taxonomy_id = tr.term_taxonomy_id
                   AND (tt.taxonomy = %s AND tt.term_taxonomy_id != 1)

       WHERE       p.post_author = %s
       GROUP BY    tt.term_id
       ORDER BY    count DESC LIMIT 2
    ",
        $taxonomy,
        $user_id
    ) );
    return $results;
}

问我的问题:在posts表格下,我的列post_status的值为published。我希望查询仅获取post_status设置为published的结果。

我该怎么做?

1 个答案:

答案 0 :(得分:2)

只需添加到哪里

and p.post_status = 'published'