2012-10-03 94 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