gpt4 book ai didi

Mysql UPDATE 表与最近的位置

转载 作者:行者123 更新时间:2023-11-29 11:37:38 25 4
gpt4 key购买 nike

我有 2 张 table :

-城市(id、名称、城市纬度、城市经度、车站 ID)

-stations(id、名称、station_latitude、station_longitude)

我想用最近的车站ID更新cities.station_id,限制在30公里以内

目前我只能实现这个:

UPDATE cities C, staions S
SET C.station_id = S.id
WHERE (((acos(sin((S.station_latitude*pi()/180)) * sin((city_latitude*pi()/180)) + cos((S.station_latitude *pi()/180)) * cos((city_latitude*pi()/180)) * cos(((S.station_longitude - city_longitude)*pi()/180))))*180/pi())*60*1.1515*1.609344) < 30

此查询使用位于小于 30km 的随机 stations.id 更新城市.station_id 。但我真的想要最近的,不超过30公里我尝试了“GROUP BY”、“LIMIT”或“MIN”但没有成功,但有语法错误。提前致谢。

最佳答案

也许可以尝试这样的事情。

JOIN 位于将 WHERE 排序为 ASCLIMIT 1 的子选择上。

UPDATE cities c
JOIN (
SELECT id
FROM station s
ORDER BY (((acos(sin((S.station_latitude*pi()/180)) * sin((c.city_latitude*pi()/180)) + cos((S.station_latitude *pi()/180)) * cos((c.city_latitude*pi()/180)) * cos(((S.station_longitude - c.city_longitude)*pi()/180))))*180/pi())*60*1.1515*1.609344) ASC
LIMIT 1) s
SET c.station_id=s.id

关于Mysql UPDATE 表与最近的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36329329/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com