在mysql中加载数据并将空字段替换为NULL,但不能为空

在mysql中加载数据并将空字段替换为NULL,但不能为空,mysql,csv,loading,Mysql,Csv,Loading,我使用以下指令在MySQL表中加载csv文件: LOAD DATA INFILE 'myfile.csv' INTO TABLE MYTABLE FIELDS TERMINATED BY ";" LINES TERMINATED BY "\r\n"; 为了将空字段改为空字段,我写了以下内容: LOAD DATA INFILE 'myfile.csv' INTO TABLE MYTABLE FIELDS TERMINATED BY ";" LINES TERMINATED BY "\r\n" (

我使用以下指令在MySQL表中加载csv文件:

LOAD DATA INFILE 'myfile.csv'
INTO TABLE MYTABLE
FIELDS TERMINATED BY ";"
LINES TERMINATED BY "\r\n";
为了将空字段改为空字段,我写了以下内容:

LOAD DATA INFILE 'myfile.csv'
INTO TABLE MYTABLE
FIELDS TERMINATED BY ";"
LINES TERMINATED BY "\r\n"
(field1, @field2, field3)
SET
field2 = NULLIF(@field2, '');
工作正常,但由于我使用NULLIF,即使是空白字段也被设置为NULL


我怎么能说只有空字段变为NULL,而空白字段保持不变?

空字段和空白字段的区别是什么?空白字段的大小=0,空白字段的大小=空白字段的数量一个选项是:
SET@`field2`=IF(字符长度(@`field2`)>0,@`field2`,NULL)