Mysql选择查询按时间段选择

时间:2015-02-16 19:58:03

标签: mysql

我有一个表员工,我想根据日期选择一行。

emp_id       validation_user        entry_date
-------------------------------------------------------
 10          mark                   2014-05-01 11:11:00
 10          ann                    2014-05-01 10:14:00
 10          marco                  2014-05-01 11:07:00
 10          mark                   2014-05-01 10:00:00

我想在emp_id = 10且entry_date小于2014-05-01 11:11:00时获得该行 这应该只返回一行,最接近2014-05-01 11:11:00而不是三行

 emp_id       validation_user        entry_date
-------------------------------------------------------
 10                marco            2014-05-01 11:07:00           

我的select语句返回3行:

SELECT *    
FROM emp 
where entry_date < "2014-05-01 11:11:00"  

1 个答案:

答案 0 :(得分:2)

由于MySQL中没有row_number,您可以通过以下方式实现限制和排序:

SELECT *    
FROM emp 
where entry_date < "2014-05-01 11:11:00"  
order by entry_date desc
limit 1

我们在这里做的是通过entry_date命令确保第一行真的是我们想要的第一行,然后我们指定将查询限制为1值。

我们指定按降序排序,因为我们希望最低值低于指定日期。