2017-02-15 7 views
0

POINTとして位置を指定するSpatialItemテーブルがあるとします。緯度と経度の値を挿入するにはどうすればよいですか?2つの値からPOINTを挿入する方法

CREATE TABLE SpatialItem (
    itemId  INTEGER NOT NULL, 
    position POINT 
) ENGINE = MyISAM; 

それはこのようなものでなければなりません:

INSERT INTO SpatialItem 
(itemId position=POINT(Latitude, Longtitude)) 
SELECT ItemID Latitude Longtitude 
FROM Item; 
+0

https://dev.mysql.com/doc/refman/5.7/en/using-spatial-data.html(電話で申し訳ありません)を参照してください。また、MyISAMには多くの欠点があります。 – Schwern

+0

gis.stackexchange.com –

+0

@Schwern私はMySQL5.5を使用していますが、MyISAMだけが空間インデックスをサポートしています。私は、ドキュメントをチェックし、ちょうどINSERT SELECTで "set"を使う方法を知らない –

答えて

0

挿入する直接フィールドへの選択マッピングすることにより選択した作品の列に挿入します。選択範囲から出てくるフィールドは、挿入が期待するものと一直線に並ばなければなりません。

つまり、緯度と経度をポイントに変換する必要があります。

INSERT INTO SpatialItem 
(itemId, position) 
SELECT ItemID, POINT(Latitude, Longtitude) 
FROM Item 
関連する問題