mysql - mysql - 在 SELECT * INTO OUTFILE(在文件名上)时使用变量(日期)

标签 mysql csv into-outfile

下午好

我正在使用 INTO OUTFILE 创建一个包含 SELECT 信息的 CSV 文件。 我需要使用变量来个性化 CSV 的名称。

例如,我想添加日期 NOW()。

这是想法(但行不通):

SET @outpath = "out/";
SET @outfile = (SELECT NOW());
SET @outextension = "_EMAIL_WithoutEmail.csv";
SET @outfull = CONCAT(@outpath,@outfile,@outextension);
SELECT *
    FROM `vn_db_tmp`
    INTO OUTFILE @outfull
    FIELDS TERMINATED BY ';'
    ENCLOSED BY '"'
    LINES TERMINATED BY '\n';

任何人都知道这是否可能? 谢谢

最佳答案

一种选择是使用 13.5 Prepared SQL Statement Syntax .

例子:

...

SET @`outfull` := CONCAT('out/', NOW(), '_EMAIL_WithoutEmail.csv');    
SET @`qry` := CONCAT('SELECT * 
                        INTO OUTFILE \'', @`outfull`, '\' 
                        FIELDS TERMINATED BY \';\' 
                        ENCLOSED BY \'"\' 
                        LINES TERMINATED BY \'\n\' 
                      FROM `vn_db_tmp`');    
PREPARE `stmt` FROM @`qry`;
SET @`qry` := NULL;
EXECUTE `stmt`;
DEALLOCATE PREPARE `stmt`;
...

关于mysql - mysql - 在 SELECT * INTO OUTFILE(在文件名上)时使用变量(日期),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48063901/

相关文章:

python - 将日期时间与日期时间范围进行比较

带有OUTFILE的MYSQL存储过程,txt文件中没有空格

mysql - 如何让 MySQL 以不同的用户身份写入输出文件?

mysql - 将 MySQL 表重新格式化为网格

java - Hibernate 中的 c3p0 中可能存在内存泄漏?

python - 解析csv文件中的json字符串

python - csv.reader 从请求流 : iterator should return strings, 中读取而不是字节

带有前导零的 mysql outfile 列

mysql - 新表插入的触发器

mysql 优化 : current & previous orders should be on different tables, 或带有标志列的同一个表?