MySql语句不适用于.bat文件,但在MySql中可以正常工作

时间:2018-12-01 05:53:05

标签: mysql

我正在尝试执行包含以下代码的.bat文件

@echo off
setlocal EnableDelayedExpansion
C:\Windows\System32\cmd.exe /c ""C:\Program Files\MySQL\MySQL Server 
5.7\bin\mysql.exe" -u root  -p88adb88 -h localhost -Ddatabase_1 -e 
"delete from job where id in (select * from (SELECT MAX(id) AS id FROM job 
where job.created_date between (select CURDATE() +Interval 60*60*3 second) 
and (select CURDATE() + INTERVAL (60*60*24-1) SECOND) GROUP BY customer_id 
HAVING COUNT(*)>1 ) as dup)"&pause"

但是它不起作用。它删除了在定义的期间内创建的所有记录。没有重复的。应该删除作业计数大于1的作业。但是,delete语句在MySql工作台中可以完美地工作。 一件有趣的事情是,当我在“ COUNT(*)> 1”和右括号“)”之间没有空格时,.bat文件甚至无法执行。

有人可以帮忙吗

非常感谢

欢呼

1 个答案:

答案 0 :(得分:0)

我通过将SQL delete语句放在单独的文本文件中来解决此问题。并更改.bat代码,使用“