AREA_ID列とPolygonタイプのAREA列を持つエリアのテーブルがあります。
次のクエリを実行していますが、機能しないようです。
SELECT AREA_ID, AsText(AREA)
FROM networkmodel.sit_area
WHERE Within(AREA, Polygon((
50.913424 -1.420527,
50.915805 -1.391516,
50.898053 -1.390142,
50.895021 -1.428251,
50.913424 -1.420527)))
このクエリでは、「オペランドには1つの列が含まれている必要があります」というエラーが表示されます。
座標の周りに角かっこを1つ少なくすると、代わりに「解析中に不正な非幾何学的'(50.913424 -1.420527)'値が見つかりました」というエラーが発生します。私の座標は間違った形式ですか?
MySQLのドキュメントから、Within関数が適切に実装されておらず、代わりにMBR実装にフォールバックしていることを認識していますが、現時点ではテスト中です。私は過去にContains関数を使用して、ポリゴンの代わりに2番目のパラメーターとしてPointを使用することで同様の方法でレコードを返すことに成功しましたが、これはその逆であると思われます。
この関数は2つのパラメーターを取り、最初の(この場合は私の領域の列)が指定されたポリゴン内にあるかどうかをチェックすることは、ドキュメントからの私の理解です。
どんな助けでもありがたいです。