Я пишу из двух столбцов в формате varChar с именами «широта» и «долгота» в столбец в формате 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)
Согласно этому инструменту, полигон в моем запросе охватывает всю территорию США. Я знаю, что есть точки в моей таблице, которые попадают в США, но я все еще не получаю никаких результатов (обратите внимание, что я получаю нулевой результат, а не ошибку). Любые идеи относительно того, что я делаю неправильно?
ОБНОВИТЬ. Ниже приведена обновленная попытка выполнить мой запрос в соответствии с приведенным ниже предложением.
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)