在执行SELECT INTO OUTFILE时删除“\ N”

时间:2011-01-07 17:56:02

标签: mysql sql into-outfile

我正在做SELECT INTO OUTFILE并且每个NULL值显示“\ N”。我有什么方法让它变得空白吗?

我在使用MySQL。

2 个答案:

答案 0 :(得分:6)

您可以使用COALESCE函数,如下所示:

COALESCE(yourfield, '')

答案 1 :(得分:0)

很好的问题,今天与2011年一样重要。我为此使用了一个存储过程,它以表的名称作为参数。随后,它使用预备语句并且没有游标将所有空值转换为空字符串(''),因为游标非SQL。我已经用一个包含大约200列的表格进行了测试,并且得到了一个长达15,000个字符的准备语句:

CREATE DEFINER=`root`@`localhost` PROCEDURE `ExportFixNull`(
   in tblname tinytext)
BEGIN

set @string=concat(
    "Update ",@tblname," set ",
    (
        select group_concat(column_name,"=ifnull(",column_name,",'')")
        from information_schema.columns 
        where table_name=@tblname
    )
    ,";"
 );

prepare s1 from @string;
execute s1;
drop prepare s1;

在主SQL文件中,有一个语句

SET @@group_concat_max_len = 60000;

这可能至关重要。

更多细节(荷兰语):http://wiki.devliegendebrigade.nl/SELECT_INTO_OUTFILE_%28MySQL%29

此致 Jeroen Strompf