首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL 5.6 -避免两次解析几何学?

MySQL 5.6 -避免两次解析几何学?
EN

Stack Overflow用户
提问于 2017-11-03 14:23:31
回答 1查看 31关注 0票数 0

我需要查询多边形中的点,该多边形存储在不同的表中。下面的查询可以工作并完成以下工作:

代码语言:javascript
复制
SET @b := PolyFromText((SELECT AsText(boundaries.geometry) 
                        FROM boundaries_users 
                        LEFT JOIN  boundaries 
                          ON boundaries_users.boundary_id = boundaries.id
                        WHERE boundaries_users.boundary_name = 'name')); 

SELECT 
    id,
    addr_lon, 
    addr_lat,
    ST_Contains(@b, POINT(addr_lat, addr_lon))
FROM buildings
WHERE ST_Contains(@b, POINT(addr_lon, addr_lat));

在这里,boundaries.geometry是几何型的。然而,我不明白为什么我要把几何学转换成文字,然后再转换成几何学。当删除双重解析时,@b将显示为一组奇怪的符号,而ST_Contains对任何点都返回False。

MySQL 5.6

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-03 15:17:52

我猜您正在加入多个几何图形,所以您的两个查询生成不同的几何图形。

检查您是否实际使用相同的几何学:

代码语言:javascript
复制
 SET @b := With double parsing and without parsing

然后看看AsText(@b)生成了什么。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47098034

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档