执行MySQL查询批处理文件
大家好,这是我的问题 我正在尝试运行此sql查询:执行MySQL查询批处理文件,mysql,batch-file,Mysql,Batch File,大家好,这是我的问题 我正在尝试运行此sql查询: select *columns* from table *left joins* where *conditions* and column >= date_sub(current_date(),INTERVAL 1 YEAR) order by column INTO OUTFILE 'C:\path\file.csv' FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n';
select *columns* from table *left joins* where *conditions* and column >= date_sub(current_date(),INTERVAL 1 YEAR) order by column INTO OUTFILE 'C:\path\file.csv' FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n';
通过此file.bat代码:
echo select... | mysql -u user -p******* -D database
但是没有生成输出文件,而是生成了一个名为“date\u sub(current\u date()”的奇怪文件,该文件没有扩展名。该文件包含有关mysql的信息,如命令、版本和其他内容,这些信息告诉我这部分查询正在创建冲突=date\u sub(current\u date(),间隔1年)
我尝试过其他几种测试,如:
- 在sql查询中添加双引号,但这会导致mysql语法错误
- 使用另一种方式通过批处理文件执行mysql查询:
但这将提供与以前相同的输出mysql-u user-p*****-D database select…
提前感谢您的回答。大于符号是批处理中的一个特殊字符。请使用胡萝卜对其进行转义。
^>
好的,我添加了胡萝卜,代码如下所示…^>=date\u sub()…
是的,sql查询现在在命令行中显示完整,但相同的“date\u sub(current\u date()”已创建文件,而不是file.csv文件:(我想,因为您正在管道中传输SELECT命令,所以需要对其进行三次转义。^^^^>
太棒了,这就成功了,谢谢您的帮助。我对MySQL一无所知,但您不能将整个SELECT语句括在引号中,然后像这样执行查询:MySQL-u user-p************-D database-e“从表*左侧联接*中选择*列*,其中*条件*和列>=date\u sub(当前日期(),间隔1年)按列顺序放入文件'C:\path\file.csv'字段,以','结尾,行以'\r\n'结尾;”