繁体   English   中英

从我的SQL表中导出CSV文件中的数据之前如何检查行数

[英]How to check number of rows before export the data in csv file from my sql table

下面的查询对我来说很好,可以将数据从表中导出到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;

我需要在哪里更改? 有人可以帮助我吗?

您应该创建存储过程。 使用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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM