2012-04-25 16 views
0

さて、WordPressを使用していますが、これはSQL側に関係しています。SQL 1つの列に複数のIN文がある

3つのカテゴリを使用して投稿を除外する必要があるクエリがありますが、それらはすべて投稿の用語です。例えば

:私の三つのカテゴリーに

、私は次の項目を選択します。(Academia,Webdevelopment)(Fulltime,Parttime)(Earlycareer)

今私がしたいのは、投稿にこれらの用語のうち少なくとも1つが含まれていることを照会するときです。

正しい結果:タグ付きポストAcademia, Fulltime, Earlycareer

誤った結果:タグAcademia, Earlycareerポスト(フルタイムまたはパートタイムを持っていません)

は現在、私のクエリは次のようになります。

SELECT * FROM $wpdb->posts WHERE 
(
$wpdb->terms.slug IN (list of selected from category 1) AND 
$wpdb->terms.slug IN (list of selected from category 2) AND 
$wpdb->terms.slug IN (list of selected from category 3) 
) 
AND $wpdb->term_taxonomy.taxonomy = 'jobtype' AND ....... 

このクエリを使用すると、異なるカテゴリを選択すると結果が返されません(つまり、カテゴリ1から4つのアイテムを選択できますが、結果はありますが、カテゴリ2または3からは何も選択できません)。

これは何か同じ列でINを複数回使用してください。

ありがとうございました!

+0

あなたが書き込んだクエリは、正しい/不正解の結果と一致する必要があります。私は、あなたが「異なるカテゴリーにまたがって選択する」という意味を持っていない –

答えて

0

あなたの質問が正しいようです。同じ列のmiltimple時間にINを使用することに関するSQLには、制限はありません。

ただし、list of selected from category 1/2/3クエリにNULL値がないことを確認してください。これらのリストの単一のNULL値でも、WHERE条件全体の結果としてNULLが返され、結果として何も得られません。

これが役に立たない場合は、WordPressの問題でなければなりません。

関連する問題