如何在从我的sql表导出csv文件中的数据之前检查行数

时间:2015-09-09 05:47:05

标签: mysql csv

以下查询对我来说工作正常,可以将数据从表导出到csv文件,但我想要句柄,如果查询返回没有记录,那么在' filename.csv'文件应包含“未找到数据'用户留言

-- file name as timestamp
SET @fileName = DATE_FORMAT(NOW(),'%Y-%m-%d-%H:%i:%s');
SET @FOLDER = '/tmp/';
SET @EXT    = '.csv';

SET @CMD = CONCAT("SELECT id,name,salary,salaryDate FROM emp1 where name ='some_name' INTO OUTFILE '"
            ,@FOLDER,@fileName,@EXT,
            "' FIELDS ENCLOSED BY '\"' TERMINATED BY ',' ESCAPED BY '\"'",
            "  LINES TERMINATED BY '\n';"); 
PREPARE statement FROM @CMD;
EXECUTE statement;

我需要改变哪里?任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

您应该创建存储过程。使用COUNT函数检查行号,然后输出您需要的结果之一,例如 -

CREATE PROCEDURE procedure1()
BEGIN
  IF (SELECT COUNT(*) FROM emp1 where name ='some_name') = 0 THEN 
    SELECT 'no data found' INTO OUTFILE 'file_name.csv';
  ELSE
    your code here - SELECT INTO OUTFILE
  END IF;
END