在表格中显示最后不同的用户

时间:2012-11-08 11:31:13

标签: php mysql

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

3 个答案:

答案 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'))