计算num行并跳过重复的数据

时间:2017-05-19 07:06:52

标签: php mysql

我有这个评论系统,我想显示有多少用户评论过。 我在我的数据库中有这个:

id    |    name    |    comment
12         Alex         hello
13         James        hi
12         Alex         hey

即,数据库中的人数仅为2.我可以通过计算结果来完成此操作:

$q = "SELECT * FROM comments WHERE commentid = '$commentid'";
$res = mysqli_query($connection,$q);
$number = mysqli_num_rows($res);

这将导致3,因为在数据库中注册了3条评论。

现在,我怎样才能在完成阅读相同数据时跳过代码,比如我想要计算有多少人评论 - 它开始计算 - 读取Alex并计算它 - 阅读James并计算它 - 再次阅读Alex但是从那以后“亚历克斯”已被计算,这将跳过 - 因此结果只会是2。无论如何我能做到吗?谢谢!

3 个答案:

答案 0 :(得分:1)

使用COUNT(DISTINCT id)

SELECT COUNT(DISTINCT id) FROM comments WHERE commentid = '$commentid'

答案 1 :(得分:1)

SELECT count(DISTINCT name) FROM comments WHERE commentid = '$commentid'"

答案 2 :(得分:1)

您正在寻找DISTINCTCOUNT关键字:

$sql = "SELECT COUNT(DISTINCT(id)) FROM comments WHERE commentid = $commentid"

此查询将返回使用特定commentid评论的所有用户的计数。