2017-03-27 17 views
1

私は、例えば1つのvarcharにlatlonデータを格納しています。 "51.51087974、-0.11101941"と私はそれをPOINT空間値に変換したい。値が別々の浮動小数点数にある場合は、たとえば UPDATE myTable SET coords = GeometryFromText(CONCAT('POINT(', lon, ' ', lat, ')')); 私は明らかに私の価値のあるカンマをPOINTデータを得るためのスペースに置き換えることができますが、latとlonは間違った方法です。私はこれが共通の操作でなければならないと確信していますが、私の人生は解決策を見つけることができません!"lat、lon"という文字列をMySqlのPOINTに変換する方法

答えて

1

あなたの座標データを解析するために、MySQLのsubstring_index()機能を使用することができます。

区切りDELIMのカウント出現する前に文字列strからのサブストリングを返します。 countが正の場合、 最後の区切り文字(左から数えて)の左にあるものすべてが返されます。 countが の場合、最後の区切り文字(右から数えて )がすべて返されます。 SUBSTRING_INDEX()は、delimを検索するときに大文字と小文字を区別して一致する を実行します。

UPDATE myTable 
SET coords = GeometryFromText(CONCAT('POINT(', substring_index(coord_field, ',',-1), ' ', substring_index(coord_field, ',',1), ')')); 
関連する問題