首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用load数据本地派生从csv加载数据时NULL和\N之间有什么区别?

问使用load数据本地派生从csv加载数据时NULL和\N之间有什么区别?
EN

Database Administration用户
提问于 2013-07-19 11:09:58
回答 2查看 17.6K关注 0票数 3

我有一张有四个字段的桌子

代码语言:javascript
复制
create table test_hc1(cola int,colb int,colc varchar(20),cold int);

现在,我正在尝试加载以下数据

代码语言:javascript
复制
1,2,\N,4

表中的第三个字段是NULL,这是预期的结果。

在另一种情况下,我试图加载以下数据

代码语言:javascript
复制
1,2,NULL,4

它还将第三个字段加载为NULL。

下面是我的问题:使用这两种(\N,NULL)有什么区别?

我在用

代码语言:javascript
复制
LOAD DATA LOCAL INFILE 'PATH_TO_DATAFILE'
INTO TABLE TABLE_NAME FIELDS TERMINATED BY x'01';

任何帮助都是非常感谢的。

谢谢

EN

回答 2

Database Administration用户

回答已采纳

发布于 2013-11-18 06:13:54

取决于在FIELDS语句中使用的选项LOAD DATA和LINES。

MySQL文档

来自MySQL文档:

NULL值的处理根据所使用的字段和行选项而有所不同:对于默认字段和行值,NULL被写入输出的字段值\N,字段值\N对于输入读取为NULL (假设转义字符为“\”)。如果被包围的字段不是空的,则将包含文字单词NULL的字段作为其值读取为空值。这与字符括起来的字段中包含的单词NULL不同,该字段被读为字符串'NULL‘。如果由转义的字段为空,则NULL将写入单词NULL。使用固定行格式(当字段结束时,字段结束和字段都为空),NULL被写为空字符串。请注意,这将导致表中的空值和空字符串在写入文件时都无法区分,因为两者都是作为空字符串写入的。如果您需要在读取文件时能够将两者区分开来,则不应使用固定行格式。

票数 3
EN

Database Administration用户

发布于 2013-07-19 16:46:09

来自MySQL文档:

空值表示“无数据”。NULL可以用任何字母大写。同义词是\N (区分大小写)。

https://dev.mysql.com/doc/refman/5.5/en/null-values.html

票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/46670

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档