mysql load data 数据为null
时间: 2023-07-29 14:12:26 浏览: 242
如果你在使用MySQL的LOAD DATA命令时,遇到了数据为NULL的情况,有可能是以下几个原因导致的:
1. 数据源文件中的字段值确实为NULL,可以通过在LOAD DATA命令中指定NULL的表示方式来解决,例如:
```
LOAD DATA INFILE 'data.txt' INTO TABLE my_table
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
(field1, field2, @var1, field3)
SET field4 = NULLIF(@var1,'');
```
上述命令中,使用了NULLIF函数来将@var1为空字符串时,转换为NULL值。
2. 数据源文件中的字段值包含了非法字符,例如换行符或制表符等,可以通过使用REPLACE函数来对数据进行预处理,例如:
```
LOAD DATA INFILE 'data.txt' INTO TABLE my_table
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
(field1, field2, @var1, field3)
SET field4 = NULLIF(REPLACE(@var1,'\r\n',''), '');
```
上述命令中,使用了REPLACE函数将@var1中的换行符替换为空字符串,再使用NULLIF函数将空字符串转换为NULL值。
3. 数据源文件中的字段值为空字符串,可以通过在LOAD DATA命令中指定SET语句来将空字符串转换为NULL值,例如:
```
LOAD DATA INFILE 'data.txt' INTO TABLE my_table
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
(field1, field2, @var1, field3)
SET field4 = NULLIF(@var1,''), field5 = NULLIF(field5,'');
```
上述命令中,使用了SET语句将field5中的空字符串转换为NULL值。
阅读全文