Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
执行MySQL查询批处理文件_Mysql_Batch File - Fatal编程技术网

执行MySQL查询批处理文件

执行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';

大家好,这是我的问题

我正在尝试运行此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';
通过此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…
    但这将提供与以前相同的输出
如果我删除了给我带来麻烦的条件,则成功创建文件.csv。 有没有其他办法解决这个问题


提前感谢您的回答。

大于符号是批处理中的一个特殊字符。请使用胡萝卜对其进行转义。
^>
好的,我添加了胡萝卜,代码如下所示…
^>=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'结尾;”