[英]Selecting the last record of yesterday and all records of today in single query
我知道可以獲取昨天的記錄,最常見的方式是使用SUBDATE(CURDATE(), 1)
或者簡單地使用CURDATE() - 1
並使用LIMIT
和ORDER
來檢索昨天的最后一條記錄。
但是在這里,我需要在第一行中獲取昨天的最后一個記錄,其余的將是今天的所有記錄。 我需要在單個查詢中運行它。
例如,我的一個表中有以下記錄:
--------------------------------------------------
| value | created_at |
--------------------------------------------------
| 70 | 1/1/2017 |
| 300 | 1/1/2017 |
| 100 | 1/1/2017 |
| 235 | 1/2/2017 |
| 45 | 1/2/2017 |
--------------------------------------------------
created_at
列是一個時間戳,如果今天是1/2/2017(2017年1月2日),則查詢結果應為:
--------------------------------------------------
| value | created_at |
--------------------------------------------------
| 100 | 1/1/2017 |
| 235 | 1/2/2017 |
| 45 | 1/2/2017 |
--------------------------------------------------
到目前為止,我只能通過以下查詢來檢索今天的記錄:
SELECT * FROM my_table WHERE created_at >= CURDATE();
我需要完成什么查詢?
希望您將id作為主鍵
select * from
(select
*
from
tbl
where date(created_at) =date(DATE_ADD(now(), INTERVAL -1 DAY))
order by id desc limit 0,1
)tmp
UNION
select * from tbl where date(created_at)=date(now())
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.