gpt4 book ai didi

mysql - 需要一种优雅的方式来找到数百个匹配项,而无需执行数百个查询

转载 作者:行者123 更新时间:2023-11-29 20:16:54 24 4
gpt4 key购买 nike

使用带有地理空间扩展的 MySQL 5.7,我有一个包含字段“poly”的表,它定义了梁的横向边界

我有一个字段“pt”,它定义了一个位置。

为了确定给定点是否在给定光束中,我运行查询:

set @p=(select pt from beams where name='current_position');
SET @a = (select poly from beams where name='first_beam');
SELECT MBRWithin(@p,@a);

如果该点位于多边形内部,则返回“1”,否则返回“0”

但是我有大约 1000 个光束,我想找到 current_position 所在的光束,我是否必须运行一千个查询,或者有没有办法优雅地返回它所在的光束?光束不重叠,最多只有 1 个匹配。

最佳答案

MBRWithin 可以在 JOIN 中使用

SELECT p.id, a.id FROM 
(select pt from beams where name='current_position') as p
INNER JOIN
(select poly from beams where name='first_beam') as a
ON MBRWithin(p.pt, a.poly)

关于mysql - 需要一种优雅的方式来找到数百个匹配项,而无需执行数百个查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39706464/

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