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))
...将导致数据库值仍为空。
答案 0 :(得分:2)
当您使用LOAD DATA INFILE时,输入文件中的空字段被视为空字符串(对于字符串类型)空字符串与null
不同。
因此,对于您的输入,您的空字段将无法通过IFNULL()
测试。检查字段中传入数据的长度,并连接它是否为零:
LOAD DATA INFILE .... SET .... ean = IF(CHAR_LENGTH(@d3)>0,@d3, CONCAT('k0000',an))