我正在尝试执行一个包含以下代码的.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文件甚至不会执行。
有人能帮帮忙吗?
提前谢谢你
干杯
发布于 2018-12-02 03:22:38
我已经通过将SQL delete语句放在一个单独的文本文件中解决了这个问题。并更改.bat代码,使用"< deleteDuplicate.txt“替换.bat代码中的delete语句。它工作得很好。但是,我仍然不知道是什么导致了这个问题,如果把SQL语句放在.bat文件中。
https://stackoverflow.com/questions/53568151
复制相似问题