当 site_id 相同时,我想更新不同记录中的纬度和经度位置。
例如,如果
ID | SiteID | Latitude | Longitude
1 5 74.4545 -35.5466
2 6 74.4545 -35.5466
3 5 75.4584 -45.5966
4 6 79.6545 -36.5496
我希望记录 3 和所有其他与 SiteID 5 匹配的记录获取记录 1 的纬度和经度。同样,记录 2 和 4
如何在 mysql 中执行此操作。
最佳答案
您需要首先找到正确的值,然后进行更新。正确的值为:
select t.*
from t join
(select siteId, min(id) as minId
from t
group by siteId
) ts
t.id = minId
现在的问题是您无法在查询中更新和引用同一个表。因此,将其放入临时表中,例如 master
。
这些是主记录。您可以按以下方式进行更新:
update t
join master
on t.id = master.id
set t.latitude = master.latitude,
t.longitude = master.longitude
关于mysql - 当 field2 重复时更新 field1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12753865/