LOAD DATA INFILE应填充具有特定内容的空值

时间:2014-04-22 09:00:29

标签: mysql concat file-io ifnull

LOAD DATA INFILE应仅填充具有特定内容的空值。

CSV:

Value1, Value2
-------------- 
1       123345 
2        
3       678901

预期结果:

Value1, Value2
--------------
1       123345
2       k0000123345
3       678901 

LOAD DATA INFILE .... SET .... ean = IFNULL(@d3, CONCAT('k0000',an))

...将导致数据库值仍为空。

1 个答案:

答案 0 :(得分:2)

当您使用LOAD DATA INFILE时,输入文件中的空字段被视为空字符串(对于字符串类型)空字符串与null不同。

因此,对于您的输入,您的空字段将无法通过IFNULL()测试。检查字段中传入数据的长度,并连接它是否为零:

LOAD DATA INFILE .... SET .... ean = IF(CHAR_LENGTH(@d3)>0,@d3,  CONCAT('k0000',an))