データベースに格納された顧客情報で、都道府県(都道府県マスタの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