我正在使用一个使用句点“。”的 CSV 文件。符号来表示一个空值。例如,
item weight unit_price
1 5.1 10
2 . 20
3 7.5 30
4 . 40
5 2.0 50
使用以下命令将其读入 MySQL (v. 5.5) 中的表:
CREATE TABLE products(
item SMALLINT NOT NULL,
weight float DEFAULT NULL,
unit_price SMALLINT);
LOAD DATA INFILE ".../data.txt"
IGNORE
INTO TABLE products
FIELDS TERMINATED BY ","
LINES TERMINATED BY "\r\n"
IGNORE 1 LINES;
LOAD DATA 块中的 IGNORE 关键字强制转换 '.' 到 0 - 有没有办法可以将它设置为 NULL 呢?
我尝试过的唯一解决方法是:
LOAD DATA INFILE ".../data.txt"
IGNORE
INTO TABLE products
FIELDS TERMINATED BY ","
LINES TERMINATED BY "\r\n"
IGNORE 1 LINES
(item,
@weight,
unit_price
)
SET
weight = if(@weight = '.', NULL, @weight);
然而,我正在使用的实际数据有超过 1000 万行和 15 列,其中 '.' 用于表示空值。有没有更简洁的方法默认为空?