gpt4 book ai didi

php - mysql查询为分组数据返回错误

转载 作者:行者123 更新时间:2023-11-30 23:02:57 24 4
gpt4 key购买 nike

这是名为 matches 的 mysql 表。它包含用户下注的比赛、发布日期和结果(赢、输等)。

http://imgur.com/Umt5Q4m

通过第一个查询,我在用户个人资料上显示了他按月分组的投注

SELECT COUNT(*),date,SUM(stake), AVG(stake),result 
FROM matches
WHERE u_id='$id11'
GROUP BY DATE_FORMAT(date, '%Y/%m')
ORDER BY DATE_FORMAT(date, '%Y/%m') DESC
LIMIT $startrow,10

现在我需要做的是显示这些赌注赢了多少,输了多少,如下图所示

http://imgur.com/kSOF6Pi

最好的方法是什么?

我已经尝试添加另一个看起来像这样的查询

SELECT COUNT(*) 
FROM matches WHERE u_id='$id11' AND result='win'
GROUP BY DATE_FORMAT(date, '%Y/%m')
ORDER BY DATE_FORMAT(date, '%Y/%m') DESC LIMIT $startrow,10

对每个结果都有相同的查询,但问题是 lats 说这个月没有输掉的赌注,这个月没有返回任何东西,而且表格看起来顺序错误。

最佳答案

如何在一个查询中获得所有赢/输,您的 where 过滤器正在过滤结果,因此您不会获得查询丢失匹配的结果

SELECT 
SUM(result='win') `win_count`,
SUM(result='lost') `lost_count`
FROM matches
WHERE u_id='$id11'
GROUP BY DATE_FORMAT(date, '%Y/%m')
ORDER BY DATE_FORMAT(date, '%Y/%m')
DESC LIMIT $startrow,10

在上面的查询中,我使用了带有表达式的 SUM 函数,当在 SUM 中使用表达式时,它将产生一个 bool 值,并给出 1 表示表达式为 true 和 0如果表达式结果为假,换句话说,您可以使用条件通过 sum 函数简单地获取计数

关于php - mysql查询为分组数据返回错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23187103/

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