Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在mysql中获取具有特定范围(不是datetime)的行_Mysql - Fatal编程技术网

在mysql中获取具有特定范围(不是datetime)的行

在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

您好,我想请您帮助我如何使用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       
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(递增)。