【发布时间】:2011-01-07 17:56:02
【问题描述】:
我正在做一个SELECT INTO OUTFILE,它为每个NULL 值显示一个“\N”。有什么办法让我把它变成空白吗?
我在 MySQL 上。
【问题讨论】:
标签: mysql sql into-outfile
我正在做一个SELECT INTO OUTFILE,它为每个NULL 值显示一个“\N”。有什么办法让我把它变成空白吗?
我在 MySQL 上。
【问题讨论】:
标签: mysql sql into-outfile
您可以像这样使用COALESCE 函数:
COALESCE(yourfield, '')
【讨论】:
SELECT * INTO OUTFILE,还有其他选择吗?
问得好,今天和 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
问候, 杰伦·斯特罗普夫
【讨论】: