2012-10-03 65 views
2

我有以下欄目:的MySQL凡列=鮮明

ID DATE     NAME 
1  2012-10-03 12:00:00 John 
2  2012-10-03 13:00:00 Adam 
3  2012-10-10 10:00:00 Pete 

而且我想返回特定日期之間的所有列,但每月和每天只有1列。我嘗試過使用不同的語句,但我似乎無法返回所有列,只能按月和日(也需要考慮時間)。

我想結果是:

ID DATE     NAME 
1  2012-10-03 12:00:00 John 
3  2012-10-10 10:00:00 Pete 

由於這兩列不共享相同的月份和/或日期。我知道這是一個簡單的陳述。現在,我使用:

SELECT id, DISTINCT date, name FROM table WHERE date BETWEEN ? AND ? 
+0

你選擇'JOHN'而不是'ADAM'的基礎是什麼? –

+0

這並不重要,名稱只是顯示它們是單獨的條目。我只需要整個表格中所有單獨日期的計數。 – ryandlf

+0

'count'是什麼意思?你沒有在你的問題中提到這一點。 :D –

回答

0

您可以使用此查詢 -

SELECT ID, DATE, NAME FROM table 
GROUP BY DATE(DATE) 

。 ..添加WHERE條件。

1

您可以嘗試按日期

將它們分組
SELECT id, date, name 
FROM table 
WHERE date BETWEEN ? AND ? 
Group By date_format(date, '%Y-%m-%d') 
1
SELECT a.* 
FROM tableName a 
     INNER JOIN 
     (
      SELECT DATE(`DATE`) dateOnly, MIN(ID) minID 
      FROM tableName 
      GROUP BY DATE(`DATE`) 
     ) b ON a.ID = b.MinID AND 
       DATE(a.`DATE`) = b.dateOnly 
WHERE a.`DATE` BETWEEN ? AND ? 

SQLFiddle Demo