![](/img/trans.png)
[英]What is the best way to get MySQL query results as an array in PHP?
[英]What is the “best” way to get 3 different SUM using a single query in MYSQL
这似乎是主观的,但不是主观的。
鉴于:
Table with the ff. field:
- userid
- breakstart
- breakend
- minutes
- breaktype
目标:获取特定user
每种中断类型的SUM()
,包括breakstart
和breakend
到目前为止,我所做的是:我能想到的最简单的方法是执行3个单独的查询,就像这样...
SELECT SUM(minutes) as totalbreak
FROM `breaklog`
WHERE
userid = <some userid>
AND
DATE(breakstart) = "2015-06-11"
AND
DATE(breakend) = "2015-06-11"
AND
breaktype = "1"
# just feed breaktype with valid types i.e. ("1", "2", "3")
是否只是想知道是否有更好的方法可以实现我的目标,可能只需要一个查询? 甚至有可能吗? 还是获得所有breaktypes
并在SQL引擎之外进行过滤是更好的选择, breaktypes
在后端使用PHP。
在此先感谢您的所有投入。
做一个GROUP BY
:
SELECT breaktype, SUM(minutes) as totalbreak
FROM `breaklog`
WHERE
userid = <some userid>
AND
DATE(breakstart) = "2015-06-11"
AND
DATE(breakend) = "2015-06-11"
AND
breaktype IN ("1", "2", "3")
group by breaktype
您也可以与Group by Have一起尝试
SELECT breaktype, SUM(minutes) as totalbreak
FROM breaklog
WHERE
userid = <some userid>
AND
DATE(breakstart) = "2015-06-11"
AND
DATE(breakend) = "2015-06-11"
group by breaktype
Having breaktype IN (1, 2,3)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.