5

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

我在 MySQL 上。

4

2 回答 2

7

您可以使用如下COALESCE功能:

COALESCE(yourfield, '')
于 2011-01-07T17:58:09.187 回答
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

问候, 杰伦·斯特罗普夫

于 2015-12-12T15:54:11.583 回答