mysql LOAD DATA INFILE NA转换为NULL
作者:互联网
mysql LOAD DATA INFILE命令中是否有一个选项,可以将.tsv文件作为mysql LOAD DATA INFILE的输入,并将该文件中的每个“ NA”字段转换为mysql中的NULL?
另外,还可以采用多个不同的名称,例如“ NaN”,“ NA”,“-”等,并将它们全部转换为“ NULL”.
解决方法:
您可以使用变量:
LOAD DATA LOCAL INFILE 'file.tsv' INTO TABLE my_table
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
(@col1, @col2, @col3)
SET
col1 = CASE WHEN @col1 NOT IN ('NA', 'NaN', '--') THEN @col1 END,
col2 = CASE WHEN @col2 NOT IN ('NA', 'NaN', '--') THEN @col2 END,
col3 = CASE WHEN @col3 NOT IN ('NA', 'NaN', '--') THEN @col3 END
在这种情况下使用:
CASE WHEN @col1 NOT IN ('NA', 'NaN', '--') THEN @col1 END
当条件为true时,它将返回@ col1的实际值,否则返回NULL
标签:bulkinsert,mysql 来源: https://codeday.me/bug/20191027/1946796.html