例如本部落遇到狗
八月份被刷,首先我们查询一下如下
你的帖子表 bbs_thread 中,时间字段是:create_date
Field | Type | Null | Key | Default | Extra
------------|----------------------|------|-----|---------|-------
create_date | int(11) unsigned | NO | | 0 |
它是 int(11) unsigned,说明是 Unix 时间戳(秒级)
你的测试时间戳 1754491179 正好是 2025年8月6日,符合预期
正确的查询:查 2025年8月的帖子
SELECT
tid,
subject,
create_date,
FROM_UNIXTIME(create_date) AS readable_time
FROM bbs_thread
WHERE FROM_UNIXTIME(create_date, '%Y-%m') = '2025-08'
LIMIT 10;
删除 2025年8月的所有帖子
DELETE FROM bbs_thread
WHERE FROM_UNIXTIME(create_date, '%Y-%m') = '2025-08';
删除对应的回复(bbs_post 表)
DELETE p FROM bbs_post p
INNER JOIN bbs_thread t ON p.tid = t.tid
WHERE FROM_UNIXTIME(t.create_date, '%Y-%m') = '2025-08';
帖子被删tid也会增加,可能中间会相差好几百几千,那么回退执行下面的代码
-- 1. 查删除前最后一个 tid
SELECT MAX(tid) FROM bbs_thread WHERE create_date < UNIX_TIMESTAMP('2025-08-01');
-- 假设结果是 150
-- 2. 设置下一个 tid 为 151
ALTER TABLE bbs_thread AUTO_INCREMENT = 151;
暂无评论