gpt4 book ai didi

mysql - 搜索点周围的距离(使用 MBR 包含)

转载 作者:行者123 更新时间:2023-11-29 08:55:32 28 4
gpt4 key购买 nike

我有一个现有的 SQL 查询,它使用 lat, lng 和大圆公式来计算特定房源周围 1 公里半径内的所有房源。

它工作得很好,但我试图使用 MySQL 地理空间扩展并使用 MBR 矩形而不是圆形来加速它,这对我来说很好。

问题:使用MBRcontains的新代码返回零结果!我是否错过了 SQL 查询中的某些内容?

纬度:42.353443长度:-71.076584

旧 SQL 查询

SELECT `price`, `city`, `state` FROM (`listings`) 
WHERE `bedroom` = '1'
AND `post_timestamp` BETWEEN DATE_SUB( NOW(), INTERVAL 10 DAY) AND DATE_SUB( NOW(), INTERVAL 0 DAY)
AND (6371 * acos( cos( radians(listings.lat) ) * cos( radians( 42.353443 ) ) * cos( radians( -71.076584 ) - radians(listings.lng) ) + sin( radians(listings.lat) ) * sin( radians( 42.353443 ) ) ) ) < 1
LIMIT 100

新 SQL 查询 ( Formula )

SELECT `price`, `city`, `state` FROM (`listings`) 
WHERE `bedroom` = '1'
AND `post_timestamp` BETWEEN DATE_SUB( NOW(), INTERVAL 10 DAY) AND DATE_SUB( NOW(), INTERVAL 0 DAY)
AND MBRContains(
LineString( Point(42.353443 + 1 / ( 111.1 / COS(RADIANS(-71.076584))), 42.353443 + 1 / 111.1),
Point(-71.076584 - 1 / ( 111.1 / COS(RADIANS(42.353443))), 42.353443 - 1 / 111.1) )
, p)
)
LIMIT 100

最佳答案

我想你可以尝试这个sql:

SELECT `price`, `city`, `state` FROM (`listings`) 
WHERE `bedroom` = '1'
AND `post_timestamp` BETWEEN DATE_SUB( NOW(), INTERVAL 10 DAY) AND DATE_SUB( NOW(), INTERVAL 0 DAY)
AND MBRContains(
LineString(
Point(
42.353443 + 1 / ( 111.1 / COS(RADIANS(-71.076584))),
-71.076584 + 1 / 111.1),
Point(
42.353443 - 1 / ( 111.1 / COS(RADIANS(-71.076584))),
-71.076584 - 1 / 111.1)
)
, p)
)
LIMIT 100

我已经更改了经纬度位置。

关于mysql - 搜索点周围的距离(使用 MBR 包含),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10064840/

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