[MySQL]Joinを利用したテキストの一括置換

データベースに格納された顧客情報で、都道府県(都道府県マスタのid)、市区町村名(テキスト)がありながら、住所のフィールドに「東京都港区六本木何々1−1−1」のように都道府県、市区町村名を重複して持っているデータを重複なしに一括置換したのでそのメモです。

customers 顧客テーブル
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(64) NOT NULL,
  `zip` varchar(8) NOT NULL COMMENT '郵便番号',
  `xmpf_id` int(11) NOT NULL COMMENT '都道府県ID',
  `city` varchar(32) NOT NULL COMMENT '市区町村',
  `address` text NOT NULL COMMENT '住所',
xmpfs 都道府県マスタテーブル
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(16) NOT NULL,
  `sort` int(11) NOT NULL,

顧客テーブルの住所の都道府県名+市区町村名を空文字に置換します。

UPDATE customers, xmpfs
SET customers.address = REPLACE (
	customers.address,
	CONCAT(xmpfs.`name`, customers.city),
	''
)
WHERE schools.xmpf_id = xmpfs.id
スポンサーリンク
336x280_1
336x280_1

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
336x280_1