0

我有一张看起来像这样的桌子

id  datetime  tick_info(string)
0  16-10-2013 3:33:01  "33300"
1  17-10-2013 5:04:01  "003023"
2  17-10-2013 6:12:04  "3244"
3  19-10-2013 5:32:12  "3333332"
4  20-10-2013 8:14:44  "33321"
5  20-10-2013 9:12:11  "5821"
6  22-10-2013 10:32:11 "33111"

因此数据可以跨越 20 天,我想选择过去 5 天的所有行。请注意,最近 5 天的意思是:表中最近的 5 个不同日期。

例如:17-19-20-22-23 在没有 21 和 18 的 tick_info 的情况下。

tick_info 的数量是可变的,因此 20 可能有 100 个 tick_info,而 23 可能有 5 个。

我正在使用mysql。

更新应该提到我正在使用 mysql 5.5.32

4

3 回答 3

1

尝试这个::

Select 
* 
from 
'myTable' 
where 'datetime' >=
      (
           select  
          `datetime` 
          from myTable 
          group by DATE(`datetime`) 
          order by `datetime` desc 4,1
        )
于 2013-10-24T11:06:52.963 回答
1

SELECT * FROM yourTable WHERE tick_info>=DATE_SUB(tick_info, INTERVAL 5 DAY) group by tick_info order by tick_info DESC

于 2013-10-24T11:11:08.347 回答
0

请检查我的查询它是百分之几的工作

我测试了它

SELECT * FROM yourTable WHERE tick_info>=DATE_SUB(Now(), INTERVAL 5 DAY) group by tick_info order by tick_info DESC
于 2017-04-26T14:49:04.810 回答