从sql导出文件更新表中的多行

时间:2014-01-24 20:52:14

标签: mysql sql mysqldump

我正在尝试根据我从另一个数据库中的另一个表导出的数据更新表api_hotspot的现有行。对于导出中的每个元组,我想在id = tuple [0]的行上设置字段address = tuple [1],LAT = tuple [2],LNG = tuple [3],但我不确定是否这是正确的做法。

UPDATE `api_hotspot` SET `LAT`=[2],`LNG`=[3],`address`=[1] WHERE id = [0] VALUES
(9, '272 College St S #9, Monmouth, OR 97361, USA', 44.846668, -123.239334),
(11, '169 Main St W, Monmouth, OR 97361, USA', 44.848419, -123.236961),
(12, '1103 Goucher St, Amity, OR 97101, USA', 45.111313, -123.199585),
(13, '380 Pacific Ave N, Monmouth, OR 97361, USA', 44.851665, -123.229607),
(14, '2410 NW Burnside Ct. Gresham, OR, 97030', 0.000000, 0.000000),
...

如何在不使用正则表达式手动替换每一行的情况下执行此操作?

UPDATE `api_hotspot` SET `LAT`=44.846668,`LNG`=-123.239334,`address`='272 College St S #9, Monmouth, OR 97361, USA' WHERE id = 9

1 个答案:

答案 0 :(得分:1)

将数据读入表格,例如export (id, address, lat, lng)并使用加入进行更新

UPDATE api_hotspot
LEFT JOIN export ON export.id = api_hotspot.id
SET api_hotspot.address = export.address, api_hotspot.lat = export.lat, api_hotspot.lng = export.lng