我有餐桌位
place_id | city | country_code | zipcode | lat | lon
现在我想显示距离 A 地点 25 英里以内的地点。地点 A 的 place_id 为 1。
SELECT *
FROM `places`
WHERE ( 3959 * acos( cos( radians((SELECT lat FROM places WHERE place_id=1)) ) * cos( radians( lat ) ) * cos( radians( lon ) - radians((SELECT lon FROM places WHERE place_id=1)) ) + sin( radians((SELECT lat FROM places WHERE place_id=1)) ) * sin( radians( lat ) ) ) ) < 25;
这工作正常,但有两个相同的子查询
SELECT lat FROM places WHERE place_id=1
是否可以优化此查询以不具有两个相同的子查询但将它们变为 1?