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天前全部记录的等效语句应该怎么写,求各位高手指导~~~~~
+–+–+
| 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 的话,那个括号的处理没找到办法
对于你的个,不放文件也可以用 -e “use test;DELETE FROM history WHERE TIME <SUBDATE(NOW(),30);”
用 echo 的话,那个括号的处理没找到办法