2014-03-28 104 views
0
在自定義的select語句變量

我定製的select語句:包括WordPress的

$querystr = " 
    SELECT $wpdb->posts.* 
    FROM $wpdb->posts, $wpdb->comments 
    WHERE $wpdb->posts.ID = $wpdb->comments.comment_post_ID 
    AND $wpdb->posts.post_status = 'publish' 
    AND $wpdb->posts.post_type = 'post' 
    GROUP BY $wpdb->posts.ID 
    ORDER BY comment_count DESC 
"; 

我的目的是限制結果返回到一組特定的崗位作者。

我在一個變量$user_ids中有一個WordPress發佈作者用戶ID的數組。

我想過加入以下到我的SELECT語句,但我敢肯定,下面的語法是不這樣做的正確方法:

AND $wpdb->posts.post_author = $user_ids 

希望有人可以幫告訴我正確的方式做這個?

+0

是'$ user_ids'數組或一個字符串?如果是數組,則需要將它內爆並使其成爲「IN」 – MSadura

+0

$ user_ids是值的數組 – henrywright

回答

0

如果$user_ids是昏迷分隔值,那麼你可以做到這一點

AND $wpdb->posts.post_author in ($user_ids) 

如果$user_ids是一個數組,然後使用此:

AND $wpdb->posts.post_author in (implode(',', $user_ids)) 
+0

'$ user_ids'是當前值的數組。我應該這樣做'implode(',',$ user_ids)'首先得到逗號分隔值嗎? – henrywright

+0

是的,你可以做到這一點。 –

+0

編輯我的答案。 –

1

首先,你應該做一個字符串:

$user_ids_string = implode(',',$user_ids)

然後你的語法無線會是:

AND $wpdb->posts.post_author in ($user_ids_string)

注意:如果您的ID是不是整數,你也應該用引號將它們包裝''

+0

感謝MarkS +1 – henrywright