我有一张带有位置纬度和经度的表格。我成功地使用了 BETWEEN 子句,直到我遇到了正在搜索的值与数据库中的值相同的情况。在这些情况下,它不会返回结果。这是一个示例,其中:
SELECT
`Location`.`latitude`,
`Location`.`longitude`
FROM
`locations` AS `Location`
WHERE `latitude` >= 40.735619
AND `latitude` <= 40.736561
AND `longitude` >= -74.033882
AND `longitude` <= -74.030861;
回报:
"latitude" "longitude"
"40.736561" "-74.033882"
"40.735619" "-74.030861"
如果我使用 BETWEEN CLAUSE (注意我什至试过这个):
SELECT
`Location`.`latitude`,
`Location`.`longitude`
FROM
`locations` AS `Location`
WHERE `latitude` BETWEEN LEAST(40.735619, 40.736561)
AND GREATEST(40.736561, 40.735619)
AND `longitude` BETWEEN LEAST(- 74.033882, - 74.030861)
AND GREATEST(- 74.030861, - 74.033882)
我得到 0 个结果。哦,更重要的是,如果我在每个值 Ex 中添加和/或减去 0.000001。“BETWEEN (40.735619-0.00001)”等。如果我这样做,它会返回两个结果。
好吧,我将使用 >= 和 <= 但我不明白为什么 BETWEEN 表现得像 > 和 < 在文档中非常清楚:
如果 expr 大于或等于 min 并且 expr 小于或等于 max,则 BETWEEN 返回 1