我正在尝试将一些数据从csv文件导入到MySQL中的表中。 csv文件和表都具有相同的字段。我想要做的是使用csv文件中的值更新MySQL中的表中的值。我正在尝试使用WHERE
子句,但是我发现了它,它不会触发csv。是否有可能做到这一点? where子句中的条件是,无论两个表中field 1
的值,即.csv和MySQL的值是相同的,都应更新表中field 2
的值。
答案 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 |
+-----+------+------+
如您所见,导入文件的第一行被第二行替换,因为主键的值相同。