我正在尝试执行包含以下代码的.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文件甚至无法执行。
有人可以帮忙吗
非常感谢
欢呼
答案 0 :(得分:0)
我通过将SQL delete语句放在单独的文本文件中来解决此问题。并更改.bat代码,使用“