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

发布于 2024-10-10 21:27:20 字数 86 浏览 6 评论 0原文

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

我在MySQL上。

I'm doing a SELECT INTO OUTFILE and it's showing a "\N" for every NULL value. Is there any way for me to make it just be blank instead?

I'm on MySQL.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

情愿 2024-10-17 21:27:20

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

COALESCE(yourfield, '')

You can use the COALESCE function something like this:

COALESCE(yourfield, '')
じ违心 2024-10-17 21:27:20

好问题,无论是在今天还是在 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< /a>

问候,
杰伦·斯特龙普夫

Good question, and as relevant today as it was in 2011. I use a stored procedure for this, wich takes the name of a table as argument. Subsequently, it converts all null-values to empty strings (''), using a prepaired statement and no cursors, for cursors are so non-SQL. I've tested it with a table with some 200 columns and a resulting prepaired statement that's about 15,000 characters long:

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;

In the main SQL-file, there is a statement

SET @@group_concat_max_len = 60000;

that might be crucial.

More details (in Dutch): http://wiki.devliegendebrigade.nl/SELECT_INTO_OUTFILE_%28MySQL%29

Regards,
Jeroen Strompf

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文