1

緯度と経度が 1 つのフィールドに連結されたテーブルがあり、値はカンマ/スペースで区切られています。緯度と経度を別々のフィールドに分割する必要があるため、計画が不十分でした。

そのため、テーブルに 2 つの新しいフィールドを追加し、テーブル内の既存のデータに基づいて入力する必要があります。新しいフィールドは decimal(6,9) に設定され、更新クエリを介してより多くの桁数が渡された場合でも、データが丸められるように見えます。

次のようになります。

ID   LOCATION                         LAT        LONG
1     43.12345,-118.12345           0.000000    0.000000
2     43.11223999, -118.43232997    0.000000    0.000000

2 つのクエリを作成したい: 1) テーブル セット LAT= LOCATION を更新しますが、最初の数字からカンマの直前まで、最初の文字グループを使用します。

2) TABLE set LONG= LOCATION を更新しますが、ここでは、コンマ/スペース ", " からテキスト文字列の末尾までの文字グループを使用します。

これが正規表現なのか、テキストで使用するために substr やその他の関数を組み合わせて使用​​する必要があるのか​​ どうかはわかりません.

いつものように、これの方向性を見つけるのに役立ちます。

ありがとう...

4

1 に答える 1

1

これは簡単に実行できます。

UPDATE YOUR_TBL
SET    LAT    = CAST(TRIM(SUBSTRING_INDEX(LOCATION, ',',  1)) AS DECIMAL(9,6)),
       `LONG` = CAST(TRIM(SUBSTRING_INDEX(LOCATION, ',', -1)) AS DECIMAL(9,6))
于 2012-08-01T04:57:44.670 に答える