以下查询对我来说工作正常,可以将数据从表导出到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;
我需要改变哪里?任何人都可以帮助我吗?
答案 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