mysql:如果找不到记录,请避免写入outfile

mysql:如果找不到记录,请避免写入outfile,mysql,Mysql,我使用这样的查询写入csv文件: select 'column_name1', 'column_name2', 'column_name3' union all select column1, column2, column3 from mytable where id = 123 into outfile '/my/path/file.csv'; 当union语句的第二部分找不到任何记录时,是否可以避免写入文件?(换句话说,如果总行数为1。)您可以按如下方式使用: DROP FUNCTION

我使用这样的查询写入csv文件:

select 'column_name1', 'column_name2', 'column_name3' union all select column1, column2, column3 from mytable where id = 123 into outfile '/my/path/file.csv';
当union语句的第二部分找不到任何记录时,是否可以避免写入文件?(换句话说,如果总行数为1。)

您可以按如下方式使用:

DROP FUNCTION IF EXISTS `my_function`;

CREATE DEFINER = `user`@`%` FUNCTION `my_function`() RETURNS int(11)
BEGIN
  SELECT COUNT(*) FROM mytable WHERE id = 123 LIMIT 1 INTO @records;
  IF @records > 0 THEN
    SELECT 'column_name1', 'column_name2', 'column_name3' 
    UNION ALL 
    SELECT column1, column2, column3 FROM mytable WHERE id = 123
    INTO OUTFILE '/my/path/file.csv';
  END IF;
  RETURN 0;
END