MySQL如何基于最大timestamp更新指定ICAO的weather表数据?
更新指定ICAO对应最新timestamp记录的wind_speed字段
你需要的更新语句完全可以沿用原查询的逻辑,精准定位到ICAO为'SSPB'的最新(最大timestamp)记录并修改wind_speed,完整写法如下:
UPDATE weather SET wind_speed = '10' WHERE ICAO = 'SSPB' AND timestamp = (SELECT max(timestamp) FROM weather WHERE ICAO = 'SSPB');
逻辑说明
这个语句和你原查询的匹配逻辑完全一致:
- 子查询
(SELECT max(timestamp) FROM weather WHERE ICAO = 'SSPB')负责获取'SSPB'对应的最新时间戳 - 外层的
WHERE条件通过ICAO = 'SSPB'和匹配到的最大时间戳,精准定位到唯一的目标记录 - 最后通过
SET wind_speed = '10'完成字段更新
这样写的好处是完全复用了你已经验证过的查询逻辑,确保更新的就是你之前查询到的那条最新记录,逻辑上是完全正确的。
内容的提问来源于stack exchange,提问作者Rodrigo Gusso
相关产品推荐
相关产品推荐

