Điều này sẽ làm những gì bạn muốn. Nó đọc trường thứ tư thành một biến cục bộ, sau đó đặt giá trị trường thực tế thành NULL, nếu biến cục bộ kết thúc chứa một chuỗi trống:
LOAD DATA INFILE '/tmp/testdata.txt'
INTO TABLE moo
FIELDS TERMINATED BY ","
LINES TERMINATED BY "\n"
(one, two, three, @vfour, five)
SET four = NULLIF(@vfour,'')
;
Nếu tất cả chúng đều có thể trống, thì bạn sẽ đọc tất cả chúng thành các biến và có nhiều câu lệnh SET, như sau:
LOAD DATA INFILE '/tmp/testdata.txt'
INTO TABLE moo
FIELDS TERMINATED BY ","
LINES TERMINATED BY "\n"
(@vone, @vtwo, @vthree, @vfour, @vfive)
SET
one = NULLIF(@vone,''),
two = NULLIF(@vtwo,''),
three = NULLIF(@vthree,''),
four = NULLIF(@vfour,'')
;