我有一个非常大的csv文件,其中包含多个字段,例如:msg_id,transaction_type,flow_name,attribute_name,attribute_value。我只需要将那些行加载到数据库,其中attribute_name不等于“memo”。
我用来加载csv文件的代码片段如下:
LOAD DATA infile 'c:/tmp/UserData.csv'
INTO TABLE UserData
FIELDS terminated by ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE rows where attribute_name="memo";
我需要填写这个“IGNORE”条款。我该怎么做?
感谢任何帮助。
答案 0 :(得分:0)
这里我正在更新逻辑但未经我验证,因此可能会抛出一些语法错误但我们可以继续处理 -
LOAD DATA INFILE 'c:/tmp/UserData.csv'
IGNORE INTO TABLE UserData
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
(@id,field2,field3,....,fieldn)
SET id = IF(attribute_name="memo", 1, @id);
逻辑:我们将主键值设置为1,而attribute_name =' memo'然后在插入时忽略重复行,因为主键1已经存在,因此将跳过所有行。