我有一个小型的自定义博客类型网站,我会在数据库中的datetime
字段跟踪我的帖子,该字段在输入时会显示current_timestamp
。
我正在进行分页设置,想知道我的数据库中有多少天。
例如,在下面的屏幕截图中,有19
个条目,但仅在5
个不同日期输入。
我希望能够在数据库中找到唯一天数。在上面的镜头中5
。
通过这种方式,我可以按天数分组我的帖子,比如7
,但仍会显示所有这些日子的所有帖子,无论有一天有更多帖子还是有一天没有。
第1页的EX显示了帖子的前7天:
1月1日 +岗位 +岗位 +交
1月3日 +交
1月4日 +岗位 +交
1月5日 +交
1月6日 +岗位 +交
1月7日 +交
1月8日 +岗位 +交
以这种方式获取此数据或分页的最佳方法是什么? 感谢
答案 0 :(得分:1)
尝试以下:
select count(*),date from tablename group by left(date,10)
以上查询将给出唯一天数。
答案 1 :(得分:0)
这将为您提供每日的帖子数量:
select from_days(to_days(date)) day, count(*) from t
group by day
然后,您可以对每7天对其进行一次分页的记录数量(天数)应用限制:
select from_days(to_days(date)) day, count(*) from t
group by day
limit 7
现在,如果你想获得实际的帖子(我认为这就是你想要的),你可以这样做:
select date, file from t t1 join (
select to_days(date) day from t
group by day
order by day desc
limit 7
) t2
on to_days(t1.date) = t2.day
这将为您提供最近7天的所有帖子。这就是你在寻找的地方吗?
修改强>
我可能会误解或者没有很好地提出我的问题,但是我想要所有完全独特日子的数量而不是帖子。 - 伊恩
LOL:这更容易:)
select count(distinct to_days(date)) from t
答案 2 :(得分:0)
我想你要找的是
SELECT count(*) from table group by DATE(date)
诀窍是通过datetime
函数将date
映射到DATE()
更新:对不起,我想念你的问题。这将返回每天的帖子数量。
获取您可以执行的唯一日期的数字列表
SELECT DISTINCT DATE(datetime) from table
要获得唯一天数,您可以检查后端语言的计数或制作子查询,例如:
select count(*) from (select distinct date(datetime) from table) as res