2016-11-25 88 views
0

我必須找到今天的第一個記錄和當天(現在)的最後一個記錄。如何得到它?如何查找來自mysql表的第一個和最後一個記錄僅用於今天的記錄?

+0

請問您的表包含DATETIME或DATE覆蓋此限制或時間欄? 當你說「今天」時,你是什麼意思?時間戳是今天的行嗎?或今天添加的行? – Tchopane

+1

誰讚賞這個東西? – Strawberry

+0

同意@Strawberry,沒有這個問題有什麼值得upvotes – Rahul

回答

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

工會不允許兩個分開的順序..但只有一個..所以你應該仔細研究你的查詢更多 – scaisEdge

+0

@scaisEdge是的,你是對的。我錯過了。更新了代碼 – Ibrahim

+0

.. upvoted .... – scaisEdge

0

由於這樣的事實,是不是不可能性,以便通過工會選擇不同的方式,你可以使用select從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 
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 
); 
相關問題