mysql查询:按列计算列>数

时间:2012-09-30 02:51:03

标签: php mysql sql

  

可能重复:
  Find duplicate strings in database

我用php查询mysql数据库。

我需要知道表中375重复的名称(它有375行)。该表包含3列:id,name,category。

这是我的PHP代码,但它用php计算,我希望它用mysql制作

$query = "SELECT * FROM user_likes"; 
//echo $query;
$result = mysql_query($query) or die(mysql_error());

// craete arrays
while($row = mysql_fetch_array($result)){
    set_time_limit(0);
    $like[$row['name']]=$like[$row['name']]+1;
    if($like[$row['name']]==375) $likes375 ++; 

}

如果有人可以帮助我,我会感激不尽。 谢谢!

3 个答案:

答案 0 :(得分:1)

试试这个:

SELECT name, count(*) likes 
FROM user_likes 
GROUP BY name
HAVING COUNT(*) > 375

答案 1 :(得分:0)

这是一些用于计算每个名字的喜欢数量的SQL。

SELECT name, count(*) likes FROM user_likes GROUP BY name;

这里有一些SQL可以过滤超过375个喜欢的名称

SELECT i.name, i.likes
FROM ( SELECT name, count(*) likes FROM user_likes GROUP BY name) i
WHERE i.likes > 375

答案 2 :(得分:0)

如果您要查找重复的名称:

$query = "SELECT name FROM user_likes GROUP BY name HAVING COUNT(*) = 375"; 

$result = mysql_query($query) or die(mysql_error());

$names = array();    
while($row = mysql_fetch_array($result)){
  $names[] = $row['name'];
}

print_r($names);