2011-08-20 69 views
1

我有mysql表tmp列pid,城市,州,国家。我写查询,所以我可以找到匹配的城市,州或国家,并且pid是可以帮助我加载另一个表的字段。 事情是,总是有两行相同的PID,有时(当WHERE在两个城市中找到匹配的城市或国家时),我不必要地再次显示来自附加表的数据两次。 所以我需要选择类似:选择*不同的一列

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

我不知道如何寻找的解决方案(我搜索在这里计算器,但没有运气)。 此外,在这张表中会有很多搜索,所以如果有多种解决方案,我更喜欢一种更快的解决方案。 感谢

+0

我不知道你有在谷歌没有为 “MySQL的选择*独特的一列”? – Abhay

回答

0

试试这个

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

我想这是解决方案,这比SELECT * FROM tmp WHERE city ='test'慢多少? – Milos911

+0

这将作为选择具有不同pid的记录,并将选择其他领域以及..如你在下面的评论中提到.. :)快乐编码 – 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问题的解释。 –