2012-01-21 12 views
4

私は緯度と経度の値を持つMySQLテーブルを持っています。私はMySQL 5の空間的なものを使いこなしていきたいのです。mysql update geo point

しかし、既存の値から作成したポイントデータを取得するだけでは本当に問題があります。私はこのようなことを試していましたが、試したすべての形式で構文エラーが発生して失敗します。誰かがこれを行う正しい方法を指摘できますか?

UPDATE locationtable a SET geopoint = GeomFromText('POINT()' a.latitude a.longitude) WHERE 1 

UPDATE locationtable a SET geopoint = GeomFromText('POINT() a.latitude a.longitude') WHERE 1 

など...

答えて

10

は、あなたがこれを行うには意味がありますが

を?:を

UPDATE locationtable a SET geopoint = GeomFromText(POINT() a.latitude a.longitude) WHERE 1 

は、私も含めて、他のバリエーションを試してみました

UPDATE locationtable AS a 
SET a.geopoint = POINT(a.latitude, a.longitude) 
+0

それだけです!おかげでypercube。私は 'GeomFromText'を使用していました。これは私がすべてのデモで見たものですから。私はちょうどそのような点を設定することができたか分からなかった。 – julio

+0

'geopoint = GeomFromText(CONCAT( 'POINT('、a.latitude、 ''、a.longitude、 ')'))')を使用することもできますが、このような複雑な理由はありません。 –

0

はこのお試しください:

UPDATE locationtable a SET geopoint = GeomFromText('POINT(a.latitude a.longitude)') WHERE 1 
+0

hmmm--エラーはありませんが、この方法では0行が更新されたと表示されます。 – julio

+0

'WHERE 1'部分を削除してみてください –

+0

同じ結果 - エラーはありませんが、0行が更新されました。 – julio