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関数を活用しましょう。
最後まで読んでいただきありがとうございました。
ディスカッション
コメント一覧
まだ、コメントがありません