我正在使用下面的语句将名为’lattitude’和’longitude’的两个varChar格式化列写入名为’coordinate’的Point格式化列.
"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)
根据这个tool,我的查询中的多边形覆盖了整个美国.我知道我的表中有些点落在美国,但我仍然没有得到任何结果(请注意,我得到一个空结果而不是错误).关于我做错了什么的任何想法?
UPDATE.以下是根据以下建议执行查询的更新尝试.
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)