F.Ko-Jiの「一秒後は未来」

MySQLのGeomFromTextなどで使うPOINTにはコンマ不要

MySQLで geometry 型のカラムに位置情報を格納する際にハマってしまったのでメモ。

MySQLに緯度経度を格納するやり方としては「Google MapsとMySQLの連携 : アシアルブログ」の説明が詳しいのですが、geometry型を使うと例えば以下のようなSQLでカラムを更新することになります。

UPDATE landmarks SET latlng=GeomFromText('POINT(139.751892 35.705637)') WHERE id=100

で、このときハマってしまったのが POINTの引数にはコンマが不要 だということ。

x座標、y座標を引数にとっているので何も考えずカンマを入れてしまっていたのですが、SQLを実行しても何もエラーが出ない上に値が更新されない。よく見ると正しくはスペース区切りだったというオチ。

MySQL :: MySQL 4.1 リファレンスマニュアル :: 10.2.3 クラス Point」を見てみると、

Point は、0 次元のジオメトリとして定義される。

と書かれてあって、つまり0次元として定義されてるからコンマ不要ということなのでしょうか。

初めてgeometryを使うときは気をつけましょう。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

著者について

fkoji

F.Ko-Ji

Webエンジニアやってます。最近は ドットインストール の開発がお仕事です。その傍ら、個人で Meity電車遅延なう梅酒.in#グラドル自画撮り部 の部室といったネットサービスを開発・運営してます。梅酒と草野球とリアル脱出ゲームが好きです。

» 詳しいプロフィールや運営サービスの一覧など