2013-04-08 71 views
-2

我有一个名为ptb_profile_views的表;mysql不会计算重复的行

id | profile_id | viewed_profile | date 

1   1    5 
2   1    5 
3   1    5 
4   2    5 
5   3    5 

确定,所以在这个例子中用户1,2 ANS 3检查出用户5的个人资料,

mysql的我已经在这里得到的是假设计算的看法用户已经拿到了号,但其中用户1已多次检出用户5几次,我不想返回重复行,因此我们不会说用户5已被查看过5次,而只会实际查看3次,因为我只想计数不同的值。

我的继承人MySQL能有人帮我:

function check_profile_views() { 
      global $connection; 
      global $_SESSION; 
      $query = "SELECT COUNT(profile_id) FROM ptb_profile_views WHERE viewed_profile_id=".$_SESSION['user_id']." AND profile_id!='0'"; 
      $check_profile_views_set = mysql_query($query, $connection); 
      confirm_query($check_profile_views_set); 
      return $check_profile_views_set;   
     } 

php的:

$check_profile_views_set = check_profile_views(); 
while ($views = mysql_fetch_array($check_profile_views_set)) { 
?> 
<? echo"". $views['COUNT(profile_id)'] ."";?> viewed your profile 

回答

9

只需添加DISTINCT

SELECT COUNT(DISTINCT profile_id) totalCOUNT FROM ptb_profile_views... 

和回声别名,

$views['totalCOUNT']