选择*不同的一列

时间:2011-08-20 14:16:55

标签: php mysql distinct

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

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

我不知道如何搜索解决方案(我在这里搜索stackoverflow,但没有运气)。 此外,在这个表中会有很多搜索,所以如果有多个解决方案,我宁愿选择更快的解决方案。 感谢

3 个答案:

答案 0 :(得分:4)

请尝试以下SQL语句:

SELECT DISTINCT pid FROM tmp WHERE city='test'

答案 1 :(得分:0)

试试这个

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

答案 2 :(得分:-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;
    }
}