PHP如何检查返回的行是否包含重复值?

时间:2012-11-01 03:31:42

标签: php mysql database

<?php
include('includes/connection.php');

$query = 'select a, c from b';
$result = mysql_query($query, $con);
$num_rows = mysql_num_rows($result);

if ($num_rows > 0)
{
    echo '<p>';
    while($row = mysql_fetch_array($result))
    {
         echo "{$row["a"]}";
    }
    echo '</p>';
}
?>

表“b”在“a”栏中具有这些值

Table b
-------
a     c
-     -
1     a
1     a1
1     a2
2     a
3     b
4     b

我希望能够在我的while循环中确定返回的行是否重复并丢弃它。我只希望这种情况下的数字1出现一次。我怎么能这样做呢?

2 个答案:

答案 0 :(得分:2)

您应该在sql端执行此操作,因为db服务器已经过优化以运行此类操作,而不是在php端使用迭代和验证。在sql select中使用DISTINCT。

答案 1 :(得分:0)

我不认为distinct会对你的情况有所帮助。原因是对具有完全相等行的元素的不同作用,但在你的情况下,即使你的列a匹配你的列c也没有

a和c上的不同将为1(在一列中)提供3行。

我可能过度了但是我想出了

循环浏览a

  FOR x IN (SELECT a from table)

SELECT *   FROM (SELECT ROW_NUMBER () OVER (ORDER BY user_id) user_row_no, A.* FROM table A WHERE A.a=x.a )  


END LOOP;