新人关于MySql批量删除数据求教! 本帖最后由 hu83369766 于 2014-08-26 10:39:31 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可以用 delete from loginfo where log_time < DATE_SUB(CURDATE(), INTERVAL 7 DAY) limit 100000;用limit限制一下,每次只需删除10W条。伪代码如下:int num=select count(1) from loginfo where log_time < DATE_SUB(CURDATE(), INTERVAL 7 DAY) ;while (num>0)do delete from loginfo where log_time < DATE_SUB(CURDATE(), INTERVAL 7 DAY) limit 100000; num=select count(1) from loginfo where log_time < DATE_SUB(CURDATE(), INTERVAL 7 DAY) ;done; delete from loginfo where log_time < DATE_SUB(CURDATE(), INTERVAL 7 DAY) limit 10000 谢谢 但具体该怎么定义num这个变量呢? 循环的具体格式该咋写呢? 小弟对数据库完全不懂啊 网上查了查 也查不到多少有用的信息 谢谢 但具体该怎么定义num这个变量呢? 循环的具体格式该咋写呢? 小弟对数据库完全不懂啊 网上查了查 也查不到多少有用的信息这个不需要写数据库啊,我这是伪代码,出了sql语句之外,这个num可以在java里面写啊,比如int num=0;num=这里写java代码调用select count(1) from loginfo where log_time < DATE_SUB(CURDATE(), INTERVAL 7 DAY) ;语句给java变量num赋值,然后while或者for,写java循环啊比如while (num>0) do #这里表示只要存在数据就通过java代码执行sql语句进行删除操作。 比如这里就是用java代码调用这个sql语句delete from loginfo where log_time < DATE_SUB(CURDATE(), INTERVAL 7 DAY) limit 100000; 来删除数据。 下面在给java变量num重新赋值下,看看批量删除10W后还有没有需要删除的记录。 num=select count(1) from loginfo where log_time < DATE_SUB(CURDATE(), INTERVAL 7 DAY) ;done;这个简单吧,你就是需要写java代码来调用sql语句做你想做的事情而已。当然你不写java写.net或者其它的php等代码都是一个功效。 请教mysql触发器问题 DECIMAL与FLOAT和DOUBLE的区别 [向WWWWA提问]避免服务器发生故障的措施 请教!oracle 的translate函数,对应MySQL用什么函数? innodb lock table 请教一个关于mysql排序 很耗时的问题 关于MYSQL存储过程的问题.. adddate函数的相关问题 求一条MySql 乱码,求高人解决 做一个卖手机号网站,需要在数据库根据规律筛选一些数据出来 字符串循环
while (num>0)
do
delete from loginfo where log_time < DATE_SUB(CURDATE(), INTERVAL 7 DAY) limit 100000;
num=select count(1) from loginfo where log_time < DATE_SUB(CURDATE(), INTERVAL 7 DAY) ;
done;
num=这里写java代码调用select count(1) from loginfo where log_time < DATE_SUB(CURDATE(), INTERVAL 7 DAY) ;语句给java变量num赋值,然后while或者for,写java循环啊
比如
while (num>0)
do #这里表示只要存在数据就通过java代码执行sql语句进行删除操作。
比如这里就是用java代码调用这个sql语句delete from loginfo where log_time < DATE_SUB(CURDATE(), INTERVAL 7 DAY) limit 100000; 来删除数据。
下面在给java变量num重新赋值下,看看批量删除10W后还有没有需要删除的记录。
num=select count(1) from loginfo where log_time < DATE_SUB(CURDATE(), INTERVAL 7 DAY) ;
done;这个简单吧,你就是需要写java代码来调用sql语句做你想做的事情而已。当然你不写java写.net或者其它的php等代码都是一个功效。