7

以下のステートメントを使用して、「緯度」と「経度」という名前の 2 つの 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)

このツールによると、クエリのポリゴンは米国全体をカバーしています。テーブルに米国内にあるポイントがあることはわかっていますが、まだ結果が得られていません (エラーではなく null の結果が得られていることに注意してください)。私が間違っていることについてのアイデアはありますか?

アップデート。以下は、以下の提案に従ってクエリを実行するための更新された試みです。

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)
4

2 に答える 2