You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MYSQL如何删除表中所有带有最小DATE值的记录

MySQL批量删除最小日期所有对应行的实现方法

你原本使用的SQL仅会按DATE升序排序后删除第一条匹配记录,因此无法覆盖首个交易日的全部交易数据,可使用以下两种方案实现需求:

方案1:子查询匹配法(写法简单,适合中小数据量)

该方案通过嵌套子查询规避MySQL同表更新限制,直接匹配删除所有最小日期对应行:

DELETE FROM 你的实际表名
WHERE `DATE` = (
    SELECT min_date FROM (
        SELECT MIN(`DATE`) AS min_date FROM 你的实际表名
    ) AS temp
);

方案2:关联删除法(执行效率更高,适合百万级以上大数据量表)

通过JOIN关联最小日期结果集,批量删除匹配行:

DELETE t1
FROM 你的实际表名 t1
INNER JOIN (
    SELECT MIN(`DATE`) AS min_date FROM 你的实际表名
) t2 ON t1.`DATE` = t2.min_date;

注意事项

  • 请将SQL中的你的实际表名替换为你的股票数据表的真实表名
  • DATE为MySQL内置关键字,因此用反引号包裹避免语法冲突,如果你实际的日期字段名为其他非关键字名称(如trade_date)可省略反引号
  • 删除操作前建议先执行查询验证结果,避免误删数据:
-- 先查询确认要删除的记录是否正确
SELECT * FROM 你的实际表名
WHERE `DATE` = (SELECT MIN(`DATE`) FROM 你的实际表名);

内容的提问来源于stack exchange,提问作者Chopin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 22:09:03