Php MYSQL具有不同的值和总计

Php MYSQL具有不同的值和总计,php,mysql,count,distinct,Php,Mysql,Count,Distinct,正在尝试返回已解析票证的所有用户的列表以及他们解析的票证数此代码有效,但在while循环中进行查询似乎是一种不好的做法 有没有更有效的方法 //Get all users who have resolved a ticket $stmt = $db->prepare("SELECT DISTINCT resolvedby FROM tickets"); $stmt->execute(); while($rows = $stmt->fetch()){ $user = $

正在尝试返回已解析票证的所有用户的列表以及他们解析的票证数此代码有效,但在while循环中进行查询似乎是一种不好的做法

有没有更有效的方法

//Get all users who have resolved a ticket
$stmt = $db->prepare("SELECT DISTINCT resolvedby FROM tickets");
$stmt->execute();

while($rows = $stmt->fetch()){
    $user = $rows['resolvedby'];
    echo "$user "; //Echo each user

    $new = $db->prepare("SELECT count(resolvedby) as total FROM tickets WHERE resolvedby = :u ");
    $new->bindParam('u',$user);
    $new->execute();

    $row = $new->fetch();
    echo $row['total']; //Echo the total of each user
    echo "<br />";
}

您需要将group by与聚合函数count一起使用:

SELECT
      resolvedby
    , COUNT(*) AS total
FROM
    tickets
GROUP BY
    resolvedby

当然,您希望使用一些WHERE子句来限制结果。

使用Group By to COUNT如果您是正确的,几乎总是
在while循环中进行查询
可以用另一种更有效的方法完成。
SELECT
      resolvedby
    , COUNT(*) AS total
FROM
    tickets
GROUP BY
    resolvedby