1

我正在研究这样的 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 表中?

4

3 回答 3

3

这个查询可以做到。

SELECT * 
FROM   (SELECT Operator, 
               Typeop 
        FROM   tbl 
        WHERE  `Time` > ( Now() - INTERVAL 3 minute ) 
        ORDER  BY `Time` DESC) AS `a` 
GROUP  BY `Operator` 
于 2012-11-08T11:38:39.490 回答
0

用这个...

Select Operator,Typeop from YourTableName where Time > date_sub(now(), interval 3 minute)  ORDER BY `Time` desc group by Operator;
于 2012-11-08T11:40:37.460 回答
0

我还没有测试过这个,但是这样的东西也可以工作。

SELECT * FROM tableName WHERE Time BETWEEN (CURTIME() AND ADDTIME(CURTIME(), '00:03:00'))
于 2012-11-08T11:45:03.113 回答