MySQLでREPLACE関数を使いこなす|文字列置換の実践テクニック
とてぃです。今回はMySQLのREPLACE関数を使った文字列置換の実践的な方法を、具体例とともに解説します。大量データの一括修正や動的な値変更に役立つテクニックです。
REPLACE関数の基本構文
REPLACE(対象カラム, 置換前の文字列, 置換後の文字列)この関数は文字列の検索・置換を一度に行い、更新クエリやSELECT句でも使用可能です。
実践例:商品テーブルの修正
| カラム名 | 元の値 | 置換後 | 
|---|---|---|
| shohin | カラフルな模様のシャツ | 水玉模様のシャツ | 
UPDATE 商品テーブル 
SET shohin = REPLACE(shohin, 'カラフルな模様', '水玉模様')
WHERE shohin LIKE '%カラフルな模様%';
WHERE句を追加することで、該当する行のみを効率的に更新できます。
応用テクニック
1. 複数項目を同時置換
UPDATE products 
SET 
    name = REPLACE(name, '旧', '新'),
    description = REPLACE(description, 'old', 'new')
WHERE category = '衣類';2. ネストした置換
SELECT 
    REPLACE(
        REPLACE(text, '[会社名]', '株式会社サンプル'),
        '[日付]', CURDATE()
    ) AS formatted_text
FROM documents;3. 部分一致と組み合わせ
UPDATE users 
SET email = REPLACE(email, '@old-domain.com', '@new-domain.com')
WHERE email LIKE '%@old-domain.com';注意点とベストプラクティス
- バックアップ必須:UPDATE実行前には必ずデータのバックアップを
 - 大文字小文字の区別:デフォルトでcase-insensitive(照合順序に依存)
 - パフォーマンス:大量データの場合はインデックスを確認
 - エスケープ処理:特殊文字(%や_)がある場合は適切にエスケープ
 
REPLACE関数 vs REPLACE文
| REPLACE関数 | REPLACE文 | |
|---|---|---|
| 用途 | 文字列置換 | 行の置換(UPSERT) | 
| 構文 | SELECT/UPDATE内で使用 | 独立したDML文 | 
| 例 | UPDATE … SET col = REPLACE(col, ‘a’, ‘b’) | REPLACE INTO table … VALUES(…) | 
まとめ
- REPLACE関数は部分的な文字列修正に最適
 - WHERE句との組み合わせで効率的に更新
 - 複雑な置換は複数回ネストして使用可能
 - 実行前のバックアップとテストが重要
 
MySQLの公式ドキュメントも参考にしながら、安全かつ効果的にREPLACE関数を活用しましょう。
最後まで読んでいただきありがとうございました。


ディスカッション
コメント一覧
まだ、コメントがありません