0

我有一个表“abc”,我在其中存储具有多条记录的时间戳让假设

1334034000  Date:10-April-2012
1334126289  Date:11-April-2012 
1334291399  Date:13-April-2012

我想构建一个 sql 查询,我可以在第一次尝试找到具有最后两天值的记录,然后在接下来的两天第二次找到。. .

例子:

Select *,dayofmonth(FROM_UNIXTIME(i_created)) from notes
where dayofmonth(FROM_UNIXTIME(i_created)) > dayofmonth(FROM_UNIXTIME(i_created)) -2
order by dayofmonth(FROM_UNIXTIME(i_created))

此查询返回所有记录日期,但我们需要最多两天的记录。

请相应地提出建议。提前致谢

编辑:

如果今天是 4 月 13 日,并且我们的表有最大天数 10、9、8,. . . april 那么我们必须显示 10, 9 April 和他的最后日期记录

4

2 回答 2

2

试试这个查询 -

SELECT t1.* FROM table t1
  JOIN (SELECT date FROM table GROUP BY date DESC LIMIT 2) t2
    ON t1.date = t2.date

它将显示日期为“2012 年 4 月 11 日”和“2012 年 4 月 13 日”的所有记录。

这是你想要的吗?


编辑:

SELECT
  t1.*, t2.date
FROM
  notes t1
JOIN (SELECT
        DATE(FROM_UNIXTIME(i_created)) date
      FROM
        notes
      GROUP BY
        date DESC
      LIMIT
        2
  ) t2
ON
  DATE(FROM_UNIXTIME(t1.i_created)) = t2.date
于 2012-04-13T05:24:32.933 回答
0

添加limit 2到查询的末尾

于 2012-04-13T05:12:40.743 回答