次のような2列のテーブルがあるとします。
| user_id | int(11) | NO | UNI | NULL | |
| utm | point | NO | MUL | NULL | |
ご覧のとおり、非常に簡単です。utmはPointデータ型です。私はそれを次のように挿入します:
INSERT INTO mytable(user_id, utm) VALUES(1, PointFromWKB(point(50, 50)));
次に、空間インデックスを作成します。
ALTER TABLE mytable ...add spatial index on(utm) or something. (forgot)
了解しました。すべてが良好です。さて、距離<99999の*を選択したいのですが、うまくいき ません!
//This is supposed to select all where the distance is less than 99999999.
set @mypoint = PointFromWKB(point(20,20))
select * from mytable where GLength(LineString(utm, @mypoint)) < 9999999;
Empty set (0.00 sec)
select * from mytable where GLength(LineStringFromWKB(LineString(utm, @mypoint))) < 9999;
Empty set (0.00 sec)
ちなみに、私はPointFromWKBなしでINSERT INTOを試みましたが、機能しませんでした。そのため、誰かがPointFromWKBを私に提案しました。