2012-04-25 4 views
0

그래, 저는 WordPress를 사용하고 있습니다.하지만 SQL 측과 관련이 있습니다.SQL 하나의 열에 여러 개의 IN 문이 있습니다.

나는 세 가지 범주를 사용하여 게시물을 필터링해야하지만, 게시물의 모든 용어입니다. 예를 들어

:

내 세 가지 범주에서, 나는 다음과 같은 선택 : (Academia,Webdevelopment)(Fulltime,Parttime)(Earlycareer).

이제 게시물에 해당 용어가 적어도 하나씩 있음을 쿼리 할 때 확인하십시오.

올바른 결과 : 태그 게시물 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 시간 동안 사용하는 것에 대한 SQL에는 아무런 제한이 없습니다.

그러나 list of selected from category 1/2/3 개의 검색어에 NULL 값이 없는지 확인하십시오. 이 목록의 단일 NULL 값조차도 전체 'WHERE'조건의 결과로 NULL을 제공하므로 아무 것도 얻지 못합니다.

이것이 도움이되지 않는다면 워드 프레스 문제 여야합니다.

관련 문제