我必须找到今天的第一个记录和当天(现在)的最后一个记录。如何得到它?
答案 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
);