【发布时间】:2017-11-03 14:23:31
【问题描述】:
我需要查询存储在不同表中的多边形内的点。下面的查询有效并且有效:
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 是 GEOMETRY 类型。但是,我不明白为什么必须将几何图形转换为文本并返回几何图形才能这样做。去除双重解析后,@b 显示为一组奇怪的符号,ST_Contains 对任何点都返回 False。
MySQL 5.6
【问题讨论】:
-
该查询返回单个边界还是多个边界?