1
我正在编写一个查询来创建数据库表中的文件夹和通配符列表,然后这些数据库表将用于批处理文件以复制大量文件夹。我写了一个查询,它返回我感兴趣的内容,但是我注意到,导出到文件或显示到控制台的查询结果与mysql客户端本身的查询结果不同。具体来说,我通过将“\”字符翻倍来避开“\”字符,但是在写入转义字符显示的文件时。mysql在控制台中的查询结果与导出文件中的不同
我使用的查询的一个例子是如下:
SELECT CONCAT('\\',SUBSTR("Foo",1,1),'\\',"Foo",'\\*.*') AS 'List';
从MySQL命令行查询返回结果,我期望:
mysql> SELECT CONCAT('\\',SUBSTR("Foo",1,1),'\\',"Foo",'\\*.*') AS 'List';
+------------+
| List |
+------------+
| \F\Foo\*.* |
+------------+
1 row in set (0.00 sec)
但是如果我写相同的查询到一个名为test.sql的文件并尝试在查询中进行管道显示或者输出输出我在输出中得到转义字符:
C:\testing123>echo SELECT CONCAT('\\',SUBSTR("Foo",1,1),'\\', "Foo",'\\*.*') AS 'List'; > test.sql
C:\testing123>mysql < test.sql
List
\\F\\Foo\\*.*
我得到相同的结果,当我使用INTO OUTFILE
我试图消除从TEST.SQL查询文件转义字符但只是导致查询抛出一个错误(如所预期)。
谢谢斯蒂芬,我是能够使用SET sql_mode ='NO_BACKSLASH_ESCAPES'和INTO OUTFILE来实现我的目标。 –