hun*_*tar 8 mysql select latitude-longitude
我发现了许多类似的帖子,甚至试图找出如何在MySQL中处理负值,但无济于事.
我有一个网站,我正在使用谷歌地图,作为一种性能增强,我将地图上绘制的标记限制在地图边界内.
我想开发一个可以使用正面或负面latitude和longitude值的查询.
对于数据库:
latitude FLOAT( 10, 6 )
longitude FLOAT( 10, 6 )
Run Code Online (Sandbox Code Playgroud)
查询:
SELECT *
FROM `table`
WHERE `latitude` BETWEEN 47.926930 AND 47.929806
AND `longitude` BETWEEN -97.077303 AND -97.083997
Run Code Online (Sandbox Code Playgroud)
如果我删除该BETWEEN条款,longitude我得到结果,虽然没有longitude约束,但是不正确.
我试过这个:
AND -`longitude` BETWEEN ABS( -97.077303 ) AND ABS( -97.083997 )
Run Code Online (Sandbox Code Playgroud)
哪个确实有效,但仅适用于负值longitude.
我需要检查longitude它是否为阴性?
Mos*_*cho 11
您也可以使用greatest()和least()函数,因此您不必担心参数.例如:
SELECT * FROM table
WHERE latitude BETWEEN least(@lat1, @lat2) AND greatest(@lat1, @lat2)
AND longitude BETWEEN least(@lon1, @lon2) AND greatest(@lon1, @lon2)
Run Code Online (Sandbox Code Playgroud)