【发布时间】:2015-12-04 19:24:23
【问题描述】:
我有一张如下表
CREATE TABLE messages (
id int(10) UNSIGNED AUTO_INCREMENT NOT NULL,
messagetext text NOT NULL,
created_at timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY(id)
)
我想做的是获取两周的数据,即本周和前一周,按天排序。例如,本周和上周在周日、周一、周二、周三...创建了多少条消息。
我确实有如下查询
SELECT
COUNT(id) AS 'Count'
FROM
'messages'
WHERE
(WEEK(created_at) = WEEK(NOW()))
GROUP BY
WEEKDAY(created_at)
ORDER BY
week(created_at) ASC,
weekday(created_at) ASC
但我不知道如何按天排序。例如,上面的查询将列出我今天或昨天得到了多少,但这不是我想要的。我想要的是按天和按周计算。
如果我对我所面临的情况足够清楚,请告诉我。
更新: 更多信息,请看下面胡安的问题
如果当前天数少于 14 天,在这种情况下,脚本应该返回前一周的天数,而不是前一周的前一周。这是胡安的解释(想象今天是星期五。如果你倒数 14 天,你会得到这周的周一到周五。前一周的周一到周日......以及上一周的周五到周日。不确定这是否是你的结果想要)
问候
加根
【问题讨论】:
-
@Strawberry 对不起?能具体点吗?
-
请包括数据库模式、示例数据和期望输出。请阅读How to ask和How to create a Minimal, Complete, and Verifiable example.
-
@JuanCarlosOropeza 让我知道您希望如何查看所需的输出?作为图像?或作为一张桌子?请确认。 - 谢谢
-
表格总是更好,因为您可以复制/粘贴。这可能会有所帮助sensefulsolutions.com/2010/10/format-text-as-table.html
-
看看为什么我们需要样本数据和期望输出。我给你一个完全不同的答案