我正在处理一个非常大的数据库~6百万条记录。我今天增加了约30,000个不良记录。如何删除今天在MySQL中创建的所有记录?
答案 0 :(得分:10)
似乎created_at
是日期时间。尝试:
delete from table
where date(created_at) = curdate()
当然,在运行此查询之前运行select *
,并确保您要删除的数据是您真正要删除的数据。
答案 1 :(得分:0)
DELETE 从 表 哪里 ( (DAY(CallDate)= DAY(GETDATE()) 和 (月(CallDate)=月(GETDATE()) 和 (年(CallDate)=年(GETDATE()) )
答案 2 :(得分:0)
尝试以下:
delete from table
where left(created_at,10) =curdate()
答案 3 :(得分:0)
条件
WHERE created_at >= '2012-03-25'
AND created_at < '2012-03-26'
可用于识别行(如果created_at
上有索引,则非常有效。)
在删除之前,请确保备份表(甚至更好,整个数据库)。此外,您可以使用某些(临时或永久)表来存储行,然后再从表中删除它们。然后,当您确定已删除有问题的数据时,删除此临时表 - 没有别的:
CREATE TABLE wrong_data AS
SELECT *
FROM tableX
WHERE created_at >= '2012-03-25'
AND created_at < '2012-03-26' ;
DELETE t
FROM tableX AS t
JOIN wrong_data AS w
ON w.PK = t.PK ;