2014-02-20 2 views
0

meta_value 열에 일치하는 값이있는 경우 grab user_id이 필요합니다. 예를 들어 "tagowner"에 대한 레코드가 있고 다른 값이 meta_value 열에 만 "999" 인 경우 AND 연산자를 사용하여 단일 열에서 여러 값을 검색하는 방법

난으로 IN 연산자를 사용하여 시도 -

SELECT * from wp_usermeta where meta_value IN ('tagowner',999); 

하지만 또한 다른 그룹의 결과를 표시한다. 난 단지 "tagowner""999"에 대한 결과가 필요합니다.

감사합니다.

+1

방법 필드가이 개 값을 가질 수 있습니다? 'tagowner'와'999' –

+1

DB 테이블이 정규화되지 않았습니다 @AndyGee - 좋은 습관은 아닙니다. 성장 추세 인 것 같습니다. –

+0

질문을 완전히 이해하지 못했지만 AND 연산자를 사용하여 여러 테이블 열을 한 번에 쿼리 할 수 ​​있습니다. SELECT * from wp_usermeta 여기서 meta_value = tagowner 및 meta_value = 999; 또한이 데이터를 검색하는 방법에 내장 된 단어 누르기를 사용하는 것이 좋습니다. http://codex.wordpress.org/Class_Reference/WP_Query – Kyle

답변

0

가입 :

SELECT * FROM wp_usermeta t1 
WHERE meta_value = 'tagowner' 
AND EXISTS (SELECT 1 FROM wp_usermeta t2 
      WHERE t2.meta_value = '999' 
      AND t1.user_id = t2.user_id) 

예 : sqlfiddle

+0

헤이 D.raev, thnksssssssss 많이, 당신의 대답은 내 문제를 해결. – deadrockerrr

+0

듣고 행복하게 받아 들일 수 있습니다.) –

2

meta_value는 숫자가 아닌 유형입니다. 당신이 두 행이 존재하는 경우, 당신은 EXISTS 또는 자체를 사용할 수에 대한 user_ids 필요한 경우

SELECT * 
FROM wp_usermeta 
WHERE meta_value IN ('tagowner', '999'); 
+0

예 Wordpress meta_value는 긴 텍스트이며 검색을 위해 따옴표가 필요합니다 !! –

관련 문제