2011-08-20 5 views
1

필자는 pid, city, state, country 컬럼을 가진 mysql 테이블 tmp를 가지고있다. 일치하는 도시, 주 또는 국가를 찾을 수 있도록 쿼리를 작성하고 pid는 다른 테이블을로드하는 데 도움이되는 필드입니다. 문제는 항상 동일한 pid를 가진 두 행이 있고 때로는 (둘 다 일치하는 도시 국가 또는 국가를 찾은 경우) 불필요하게 두 번 추가 테이블의 데이터를 표시합니다.Select * distinct one column

SELECT * FROM tmp DISTINCT pid WHERE city='test' 

나는 (내가 유래 여기에 검색,하지만 운) 솔루션을 검색하는 방법을 몰라 : 그래서 내가 뭔가를 선택해야합니다. 또한이 테이블에는 많은 검색이 있으므로 여러 솔루션이있는 경우 더 빠른 것을 선호합니다. 감사

+0

를 시도? – Abhay

답변

0

난 당신이 "MySQL은 * 별개의 열을 하나 선택"에 대한 구글에서 아무것도 없어 궁금이

SELECT DISTINCT pid,field1,field2 FROM tmp WHERE city='test' 
+0

이것이 해결책이라고 생각합니다. SELECT * FROM tmp보다 훨씬 느립니다. city = 'test'? – Milos911

+0

이것은 뚜렷한 pid를 가진 레코드를 선택하는 것으로 작동 할 것이며, 아래의 코멘트에서 언급했듯이 다른 필드도 선택할 것입니다. :) happy coding – mithunsatheesh

4

다음과 같은 SQL 문을 시도하십시오 :

SELECT DISTINCT pid FROM tmp WHERE city='test' 
+0

오 남자 나는 지금 이렇게 어리 석다 느낀다 : – Milos911

+0

입력하는 것을 잊었다 코멘트 :). 이 작업을 수행 할 수 있지만 모든 열을 선택하는 방법이 있으면 좋겠습니까? 그러나 유일한 유일한 값은 pid이어야합니다. – Milos911

+0

@ Milos911 : 모든 열을 원하지만'DISTINCT pid '를 갖는 행만 원합니까? 그래서, 두 개 (또는 그 이상)의 행에 'pid'가 같은 경우, 어느 것이 반환되어야합니까? –

-1
$keyword="0"; 
$query = "SELECT DISTINCT titel,id FROM xyz ORDER BY titel ASC "; 
$result = mysql_query($query); 
while ($row = mysql_fetch_array($result)) 
{ 
    if($keyword!==$row["titel"]) 
    { 
     $keyword=$row["titel"]; 
     echo $keyword; 
    } 
} 
+0

스택 오버플로에 오신 것을 환영합니다. 답변에 코드 스 니펫을 게시 할 때 OP 질문을 왜 그리고 어떻게 대답해야하는지에 대한 설명을 추가하는 것을 고려해보십시오. –