gpt4 book ai didi

php - 从一个 mysql 查询在 foreach 循环中返回两个 SUM 结果

转载 作者:行者123 更新时间:2023-11-29 22:10:23 24 4
gpt4 key购买 nike

我试图在一个查询中获取两个不同 SUM 的结果,因为我使用 foreach 来显示结果。实际上,第二个结果需要计算数据库中有多少条记录点。PID = 3。我能让 $total SUM 和 $conts 正确显示每个结果的唯一方法是使用 ForEach 循环,但我我不确定是否可以返回两个 SUM 结果,特别是因为第二个 SUM/count“conts”有一个 WHERE 子句。

下面的代码对于获取总数非常有用,但是一旦我添加:

SUM(points.PID WHERE points.PID = 3) AS conts

我没有得到任何结果。当然它应该是 count 而不是 SUM 。这可能吗?我无法弄清楚该方法。如果我需要对 conts 进行第二次查询,foreach 如何知道将这些结果与循环中的正确记录进行匹配?

$results = $dbh->prepare("select 
wp_users.ID,
wp_users.display_name,
points.ID,
points.PID,
SUM(points.PID) AS total,
SUM(points.PID WHERE points.PID = 3) AS conts
FROM points
LEFT JOIN wp_users ON points.ID=wp_users.ID
GROUP BY points.ID ORDER BY total DESC
LIMIT 5");
$results->execute();
$row = $results->fetchAll(PDO::FETCH_ASSOC);

//显示结果

foreach ($row as $all) {
echo "<td>$all7[total]</td>";
echo "<td>$all7[conts]</td>";

最佳答案

您可以尝试 SUM(IF(points.PID = 3, 1, 0)) AS conts

关于php - 从一个 mysql 查询在 foreach 循环中返回两个 SUM 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31736846/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com