簡體   English   中英

在單個查詢中選擇昨天的最后一條記錄和今天的所有記錄

[英]Selecting the last record of yesterday and all records of today in single query

我知道可以獲取昨天的記錄,最常見的方式是使用SUBDATE(CURDATE(), 1)或者簡單地使用CURDATE() - 1並使用LIMITORDER來檢索昨天的最后一條記錄。

但是在這里,我需要在第一行中獲取昨天的最后一個記錄,其余的將是今天的所有記錄。 我需要在單個查詢中運行它。

例如,我的一個表中有以下記錄:

--------------------------------------------------
| 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM