讨教怎么样实现用批处理命令删除MySQL30天前的记录

MySql 码拜 7年前 (2017-05-06) 1425次浏览
mysql 库名test 表名history 表结构如下:
+–+–+
| id   | time                |
+–+–+
| 4563 | 2017-03-07 21:23:53 |
| 4564 | 2017-03-07 21:23:54 |
+–+–+
实现的SQL语句可以是这样:
DELETE FROM history WHERE TIME <SUBDATE(NOW(),30);
尝试创建的批处理文件MySQL.bat内容如下:
@echo off
cd C:\Program Files (x86)\MySQL\MySQL Server 5.1\bin
(
echo use test;
echo DELETE FROM history WHERE id=4563;
)|mysql –host=127.0.0.1 –user=root –password=root
cd ..
pause
已经实现删除一条记录,但是不知道删除30天前全部记录的等效语句应该怎么写,求各位高手指导~~~~~
解决方案

5

把删除一条的语句,换成上边那个删除30天之前的就行了

@echo off
cd C:\Program Files (x86)\MySQL\MySQL Server 5.1\bin
(
echo use test;
echo DELETE FROM history WHERE TIME <SUBDATE(NOW(),30);
)|mysql --host=127.0.0.1 --user=root --password=root
cd ..
pause

5

本人写了删除30天之前的,后面批处理怎么不直接用呢?

5

where  time < date_add(now(),interval -30 day);

25

批处理中的特殊字符很难搞,建议你直接把脚本放在文件中,使用 mysql … < 文件名气 形式
对于你的个,不放文件也可以用 -e “use test;DELETE FROM history WHERE TIME <SUBDATE(NOW(),30);”
用 echo 的话,那个括号的处理没找到办法

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明讨教怎么样实现用批处理命令删除MySQL30天前的记录
喜欢 (0)
[1034331897@qq.com]
分享 (0)