在mysql中获取具有特定范围(不是datetime)的行
您好,我想请您帮助我如何使用MySQL查询获取不基于日期时间的特定范围的行。我的示例数据如下所示:在mysql中获取具有特定范围(不是datetime)的行,mysql,Mysql,您好,我想请您帮助我如何使用MySQL查询获取不基于日期时间的特定范围的行。我的示例数据如下所示: datetime action 2017-05-01 01:02:32 Login 2017-05-01 02:02:32 Task 1 2017-05-01 01:32:32 Task 2 2017-05-01 02:02:32 Logout 2017-05-01 03:30:32 Login 20
datetime action
2017-05-01 01:02:32 Login
2017-05-01 02:02:32 Task 1
2017-05-01 01:32:32 Task 2
2017-05-01 02:02:32 Logout
2017-05-01 03:30:32 Login
2017-05-02 01:02:32 Task 3
2017-05-02 02:02:32 Task 4
2017-05-02 03:02:32 Logout
因此,在这些记录上,我只想获得最新的记录,其操作范围在注销值之前具有登录值。所以我的结果应该是这样的:
datetime action
2017-05-01 03:30:32 Login
2017-05-02 01:02:32 Task 3
2017-05-02 02:02:32 Task 4
2017-05-02 03:02:32 Logout
知道怎么做吗?请告知。谢谢类似于:
SELECT datetime, action
FROM table
WHERE datetime >= (
SELECT datetime
FROM table
WHERE action="Login"
ORDER BY datetime DESC
LIMIT 1
)
ORDER BY datetime ASC
您需要添加时间或其他内容来对行进行排序。现在你不知道Task1是在登录之前还是之后。啊,是的,假设日期是datetime。好吧,包括时间,现在你在同一日期有两个登录。所以你不能把它们分开。没有办法生成您想要的输出,即使是自动递增的ID列也可能会有所帮助。我已经编辑了表,当然表上有主ID(递增)。