我尝试在一个查询中使用两个相同的函数,这就是
select *, ST_Distance_Sphere( point(
31.00000, 35.00000),
point(latitude_0, longitude_0)) * .0001
as `distance_in_km` ,
ST_Distance_Sphere( point (
31.00000, 35.00000),
point(dest_latitude_0, dest_longitude_0)) * .0001
as `distance_in_km`
from `most_places_used`
having `distance_in_km` <= '0.001'
order by `distance_in_km` asc Limit 1
这只使用第一个函数,只为第一个latlngs提供正确的结果。
我需要一行,它几乎接近2个latlngs(latlngs只是一个例子,不在乎它是否错<3),我想让它给我一行,等于函数,假设是函数latlngs接近4列latlngs
这是列名。。在函数st\u distance\u sphere中
(latitude_0, longitude_0, dest_latitude_0, dest_longitude_0)
我需要类似于这个查询的东西做同样的需要或修复它<3
1条答案
按热度按时间q9rjltbz1#
您为两个不同的列提供了相同的别名,这使得您的查询对于要使用哪个列进行过滤和排序不明确。我推荐两个不同的别名和
least()
取而代之的是:注意,我使用了子查询而不是
having
条款:这是一个更标准和可读性的方式进行,没有任何性能罚款无论如何。如果不需要区分结果集中的两个计算,可以移动
least()
直接到子查询: