数据库
首页 > 数据库> > mysql LOAD DATA INFILE NA转换为NULL

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