3

住所フィールドを検索し、アパート番号がある場合は 1 文字を大文字に変更する必要があります。したがって、「521 Main St. #3b」は「521 Main St. #3B」に変わります。

私がこれを行う方法は、レコードセットをループし、最後の文字のアドレス フィールドを見て、それが英字かどうかを確認し、その前の文字が数値の場合は大文字と小文字を変更するプログラムを作成することです。最後の文字とレコードを更新します。

これは、正規表現を使用した方が速く/簡単になるものですか (これまで使用したことがありません)? もしそうなら、これはプログラミング環境内から、または Textmate や vi などのテキストエディタを使用して行うのが最善ですか? データは MySQL と Excel にありますが、テキスト ファイルにエクスポートできます。

ありがとう。

4

2 に答える 2

2

データが MySQL に保存されている場合は、そこで処理することをお勧めします。

UPDATE  addresses
  SET   address = CONCAT(LEFT(address, CHAR_LENGTH(address) - 1), UPPER(RIGHT(address, 1)))
  WHERE address REGEXP BINARY '#[[:digit:]]+[[:lower:]]{1}$'
;

それ以外の場合は大文字と小文字が区別されないBINARYため、追加しましたが、マルチバイト文字列をサポートするために省略する必要がある場合があります。この場合、余分な更新が行われますが、結果はとにかく正しいでしょう。REGEXPBINARY

PS 影響を受ける値とその影響を示す SQL Fiddle の例: http://sqlfiddle.com/#!2/b29326/1

于 2013-06-04T10:14:19.180 に答える