【问题标题】:Remove "\N"s when doing SELECT INTO OUTFILE在执行 SELECT INTO OUTFILE 时删除“\N”
【发布时间】:2011-01-07 17:56:02
【问题描述】:

我正在做一个SELECT INTO OUTFILE,它为每个NULL 值显示一个“\N”。有什么办法让我把它变成空白吗?

我在 MySQL 上。

【问题讨论】:

    标签: mysql sql into-outfile


    【解决方案1】:

    您可以像这样使用COALESCE 函数:

    COALESCE(yourfield, '')
    

    【讨论】:

    • 如果我必须执行SELECT * INTO OUTFILE,还有其他选择吗?
    【解决方案2】:

    问得好,今天和 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

    问候, 杰伦·斯特罗普夫

    【讨论】:

      猜你喜欢
      • 2011-02-21
      • 2013-03-24
      • 1970-01-01
      • 2011-08-01
      • 2020-02-24
      • 2018-07-02
      • 1970-01-01
      • 2020-09-09
      • 2020-08-15
      相关资源
      最近更新 更多