我有一个名为geos
的表,它有两列。geoName
是物理区域的字符串描述,由geoPoly
列中的空间多边形勾画。每个记录要么是一个国家,要么是一个城市,可能在其中一个国家。
对于每个geoName,我想获得所有相交多边形的名称列表到单个列中。
如果geos
看起来像这样:
geoName | geoPoly | 孟买 | Polygon1 | 钦奈
---|---|
Polygon2 | |
Polygon3 | |
Polygon4 | |
Polygon5 | |
Polygon6 | |
Polygon7 | |
Polygon7 |
发帖30秒后才找到答案。显然。
GROUP_CONCAT ()
SELECT geos1.geoName AS targetGeo, GROUP_CONCAT(geos2.geoName SEPARATOR ', ') AS intersectingGeo
FROM geos geos1, geos geos2
WHERE ST_INTERSECTS(geos1.geoPoly, geos2.geoPoly)
AND geos1.geoName <> geos2.geoName
GROUP BY targetGeo
完美工作。
我可以将多个MySQL行连接到一个字段吗?