有没有办法在MySQL中设置代表'n / a'的字符?

时间:2012-04-05 03:04:01

标签: mysql

我正在处理使用句点'。'的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列,其中'。'用于表示空值。是否有更简洁的默认方法为null?

1 个答案:

答案 0 :(得分:0)

使用csv中的查找和替换工具来取出。并替换为“”(无)然后当你加载它将自动为重量列下的该行输入NULL