我正在使用以下语句从名为“纬度”和“经度”的两个 varChar 格式列写入名为“坐标”的点格式列。
"UPDATE table_name SET coordinate = PointFromText(CONCAT('POINT(',table_name.longitude,' ',table_name.lattitude,')'))"
我尝试使用以下语句对坐标列进行空间查询。
SELECT id , coordinate FROM table_name WHERE MBRContains(GeomFromText('Polygon(-126.728566 49.226434, -123.652395 23.586457,-56.679738 23.908252,-53.076223 55.243002)'), coordinate)
根据这个工具,我查询中的多边形覆盖了整个美国,我知道我的表中有一些点落在美国,但我仍然没有得到任何结果(注意我得到的是空结果而不是错误)。关于我做错了什么的任何想法?
更新。以下是根据以下建议执行我的查询的更新尝试。
SET @g1 = GeomFromText('Polygon((23.586457 -123.652395,23.908252 -56.679738,55.243002 -53.076223,55.243002 -53.076223,23.586457 -123.652395))');
SELECT id , coordinate FROM table_name WHERE MBRContains(@g1, coordinate)