0

さて、私はWordPressを使用していますが、これはSQL側に関係しています.

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

例えば:

私の 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これが同じ列で複数回使用することに関係があるかどうかはわかりません。

助けてくれてありがとう!

4

1 に答える 1

0

あなたのクエリは正しいようです。SQL では、同じ列に対して IN をミルティンプル回使用することについて制限はありません。

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

これで解決しない場合は、WordPress の問題に違いありません。

于 2012-04-25T20:22:27.513 に答える