<?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出现一次。我怎么能这样做呢?
答案 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;