Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MYSQL从文本文件输入加载空值_Mysql - Fatal编程技术网

MYSQL从文本文件输入加载空值

MYSQL从文本文件输入加载空值,mysql,Mysql,我正在制作一个玩具应用程序,目的是学习mysql数据库,在这里我试图以以下格式存储as记录的属性: mtgo|id |卡名|魔法成本| cmc |卡类型|甲骨文|卡力|卡韧性|稀有 使用LOAD DATA LOCAL infle为字段分配空值时遇到问题。我已经看到了关于堆栈溢出的其他解决方案,它们建议使用SET,但我想知道我在解释about转义字符时出错的地方,因为我正在将空字段设置为“\N”,就像文本文件中所指示的那样 以下是文本文件中的示例记录: 82955 Disenchant

我正在制作一个玩具应用程序,目的是学习mysql数据库,在这里我试图以以下格式存储as记录的属性:

mtgo|id |卡名|魔法成本| cmc |卡类型|甲骨文|卡力|卡韧性|稀有

使用
LOAD DATA LOCAL infle
为字段分配空值时遇到问题。我已经看到了关于堆栈溢出的其他解决方案,它们建议使用
SET
,但我想知道我在解释about转义字符时出错的地方,因为我正在将空字段设置为“\N”,就像文本文件中所指示的那样

以下是文本文件中的示例记录:

82955    Disenchant      {1}{W}      2.0     Instant     Destroy target artifact or enchantment.     \N      \N      common
加载数据查询:

LOAD DATA LOCAL INFILE "/path/ZNRrecords.txt" INTO TABLE znrTake1 FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\r' STARTING BY ''
这将产生以下结果,其中我得到“N”而不是null:

来自官方文件

反斜杠是SQL中字符串中的MySQL转义字符 声明

因此,在您从中加载的文件中,而不仅仅是
\N
放置
\\N
,以便将Null解析为
\N

你也可以用这个

LOAD DATA LOCAL infle”/path/ZNRrecords.txt
进入表znrTake1
以“\t”结尾的字段
由“”括起
由“\\”转义
以“\r”结尾的行
以“”开头
(mtgo_id、卡名、法力消耗、cmc、卡类型、甲骨文、@vcard_力量、@vcard_韧性、稀有度)
设置
card_power=NULLIF(@vcard_power,“\N”),
卡片韧性=空值(@vcard_韧性,'\N');

发现了我的问题,我在将记录写入txt文件时使用了额外的空格

所以

而不是

records.write("%s\t%s\t%s\t%s\t%s\t%s\t%s\t ...)

您好,谢谢您的回复!我尝试了您的建议,现在以“\N”作为字段值结束。我在python中使用
r“\\N”
写入我的记录txt文件时,是否应该使用其他语句?您好!你能发布你执行的写入文件的确切命令吗?
records.write("%s\t%s\t%s\t%s\t%s\t%s\t%s\t ...)