我有一张纬度和经度的桌子.我成功地使用了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;
Run Code Online (Sandbox Code Playgroud)
返回:
"latitude" "longitude"
"40.736561" "-74.033882"
"40.735619" "-74.030861"
Run Code Online (Sandbox Code Playgroud)
如果我使用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)
Run Code Online (Sandbox Code Playgroud)
我得到0结果.哦,如果我为每个值Ex添加和/或减去0.000001,那么更多."BETWEEN(40.735619-0.00001)"等.如果我这样做,它会返回两个结果.
好吧,我会使用> =和<=但是我不明白为什么BETWEEN表现得像>和<在文档中时非常清楚:
如果expr大于或等于min且expr小于或等于max,则BETWEEN返回1
| 归档时间: |
|
| 查看次数: |
5217 次 |
| 最近记录: |