使用WHERE子句从csv导入

时间:2015-03-11 07:20:30

标签: mysql csv

我正在尝试将一些数据从csv文件导入到MySQL中的表中。 csv文件和表都具有相同的字段。我想要做的是使用csv文件中的值更新MySQL中的表中的值。我正在尝试使用WHERE子句,但是我发现了它,它不会触发csv。是否有可能做到这一点? where子句中的条件是,无论两个表中field 1的值,即.csv和MySQL的值是相同的,都应更新表中field 2的值。

1 个答案:

答案 0 :(得分:0)

您肯定可以,但仅当 field1是主键时。 请考虑以下表格:

CREATE TABLE `foo` (
      `foo` int(11) NOT NULL,
      `bar` varchar(255),
      `baz` varchar(255),
      PRIMARY KEY (`foo`)
)

并假设.csv文件如下:

1,fred,wilma
1,john,doe

然后查询应如下所示:

mysql>LOAD DATA INFILE "/path/to/file.csv" REPLACE 
->INTO TABLE foo 
->FIELDS TERMINATED BY ',';
Query OK, 2 rows affected (0.00 sec)
Records: 1  Deleted: 1  Skipped: 0  Warnings: 0

mysql> select * from foo;
+-----+------+------+
| foo | bar  | baz  |
+-----+------+------+
|   1 | john | doe  |
+-----+------+------+

如您所见,导入文件的第一行被第二行替换,因为主键的值相同。