-2

所以我有一个投票系统。每次有人投票时,它都会在名为“投票”的 列中添加一个新行,其中包含所有详细信息 + 日期、时间。

在管理面板中,我想添加一个功能来说明我们本月获得了多少票。

我怎样才能做到这一点?

也许选择日期不低于 CURDATE() + 30 DAYS 的所有行,如果是,则将它们全部删除并计算我们有多少行?

    public function votesThisMonth()
    {
        $this->query = $this->pdo->prepare("SELECT * FROM votes WHERE date<DATE_SUB(curdate(), INTERVAL 30 DAY)");
        $result = $this->query->execute();

        return $result;
    }
4

1 回答 1

2

无需删除任何内容。MySQL 可以很容易地处理大量数据。在我的工作中,我们在一些表中有 50 亿行。

在下面的查询中,只需将年份和月份更改为您要查询的当前月份。

SELECT
    COUNT(*) AS num_votes
FROM
    tablename
WHERE
    YEAR(datecol) = YEAR(CURRENT_DATE)
AND MONTH(datecol) = MONTH(CURRENT_DATE)
于 2013-05-13T19:25:55.703 回答