gpt4 book ai didi

MySQL - 使用 BETWEEN 搜索负经度值

转载 作者:可可西里 更新时间:2023-11-01 06:31:50 28 4
gpt4 key购买 nike

我找到了很多类似的帖子,甚至试图找出如何在 MySQL 中处理负值,但无济于事。

我有一个使用 Google map 的网站,为了提高性能,我将在 map 上绘制的标记限制为 map 边界内的标记。

我想开发一个查询,该查询将使用正或负 latitudelongitude 值。

对于数据库:

latitude FLOAT( 10, 6 )
longitude FLOAT( 10, 6 )

查询:

SELECT *
FROM `table`
WHERE `latitude` BETWEEN 47.926930 AND 47.929806
AND `longitude` BETWEEN -97.077303 AND -97.083997

如果我删除 longitudeBETWEEN 子句,我会得到结果,尽管没有 longitude 约束是不正确的。

我试过这个:

AND -`longitude` BETWEEN ABS( -97.077303 ) AND ABS( -97.083997 )

这确实有效,但仅适用于负的 longitude 值。

如果 longitude 为负值,是否需要检查?

最佳答案

您还可以使用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)

关于MySQL - 使用 BETWEEN 搜索负经度值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9981948/

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