我正在研究像这样的MySQL数据库:
----------------------------------------------
| ID | Time | Typeop | Operator |
----------------------------------------------
| 1 | 10:01 | withdrawal | John |
| 2 | 10:01 | deposit | Mike |
| 3 | 10:01 | deposit | Andrew |
| 4 | 10:02 | check | John |
| 5 | 10:02 | withdrawal | Simon |
| 6 | 10:03 | withdrawal | Dorothy |
数据库在其运营期间由每个“操作员”填充,并显示一个假设的银行操作数据库。
我的问题是: 如何组织一个mysql查询来显示最近3分钟内每个不同运营商的活动? 在此示例的情况下,查询必须显示:
-------------------------
| Operator | Typeop |
-------------------------
| Dorothy | withdrawal |
| Simon | withdrawal |
| John | check |
| Andrew | deposit |
| Mike | deposit |
-------------------------
请注意,John在最后3分钟内完成了两次操作,但只考虑最后一次。 此表中的记录是在3分钟时间段内从最后一次操作到旧操作的。
我是否还可以在每个运营商名称旁边显示一张图片? (john.jpg,Simon.jpg ...)在查询生成的php表中?
答案 0 :(得分:3)
此查询可以执行此操作。
SELECT *
FROM (SELECT Operator,
Typeop
FROM tbl
WHERE `Time` > ( Now() - INTERVAL 3 minute )
ORDER BY `Time` DESC) AS `a`
GROUP BY `Operator`
答案 1 :(得分:0)
使用此...
Select Operator,Typeop from YourTableName where Time > date_sub(now(), interval 3 minute) ORDER BY `Time` desc group by Operator;
答案 2 :(得分:0)
我没有测试过这个,但是这样的东西也可以用。
SELECT * FROM tableName WHERE Time BETWEEN (CURTIME() AND ADDTIME(CURTIME(), '00:03:00'))