如何从今天的记录中找到mysql表中的第一个和最后一个记录?

时间:2016-11-25 14:22:59

标签: mysql

我必须找到今天的第一个记录和当天(现在)的最后一个记录。如何得到它?

3 个答案:

答案 0 :(得分:2)

要在单个查询中获取这两行,假设您的日期列是DATE字段,您将执行以下操作:

SELECT * FROM (SELECT * FROM `table` WHERE `date_column` = CURDATE() ORDER BY id ASC LIMIT 1) tb1
UNION
SELECT * FROM (SELECT * FROM `table` WHERE `date_column` = CURDATE() ORDER BY id DESC LIMIT 1) tb2

请注意,如果您的列类型是其他内容或者以不同的格式保存日期,则此示例可能不是很好/最佳。但你没有指明。

答案 1 :(得分:0)

由于联合选择不可能以不同的方式进行选择,因此您可以使用以这种方式从dinamic选择表中选择来覆盖此限制

  select * from 
  ( SELECT * FROM `table` WHERE `date_column` = CURDATE() ORDER BY id ASC LIMIT 1) t1 
  UNION
  select * from 
  ( SELECT * FROM `table` WHERE `date_column` = CURDATE() ORDER BY id DESC LIMIT 1) t2  

答案 2 :(得分:0)

SELECT * FROM your_table WHERE ID IN (
        SELECT a.*
        FROM
        (
                SELECT MIN(ID)
                FROM your_table
                WHERE date_column BETWEEN  '2016-11-25 00:00:00' AND '2016-11-25 23:59:59'
                UNION
                SELECT MAX(ID)
                FROM your_table
                WHERE date_column BETWEEN  '2016-11-25 00:00:00' AND '2016-11-25 23:59:59'
        )a
);