MySQLのREPLACE()関数でテキスト型カラムの値を更新する方法
MySQL REPLACE()関数とは
MySQLでは、REPLACE()関数をUPDATE文と組み合わせることで、テキスト型カラムに格納された文字列の一部を簡単に置換できます。特定のパターンを含むデータを一括で修正したい場合に非常に便利な機能です。
ここでは、実際にサンプルテーブルを作成し、REPLACE()関数を使ってカラムの値を置き換える手順を解説します。
1. サンプルテーブルを作成する
まず、以下のコマンドでテーブルを作成します。
mysql> create table DemoTable
(
Code varchar(100)
);
Query OK, 0 rows affected (0.50 sec)
2. テストデータを挿入する
次に、INSERTコマンドを使ってレコードを登録します。
mysql> insert into DemoTable values('8565-9848-7474');
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable values('9994-6464-8737');
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable values('6574-9090-7643');
Query OK, 1 row affected (0.17 sec)
3. 登録したレコードを確認する
SELECT文ですべてのレコードを表示してみましょう。
mysql> select *from DemoTable;
実行結果は以下の通りです。
+----------------+ | Code | +----------------+ | 8565-9848-7474 | | 9994-6464-8737 | | 6574-9090-7643 | +----------------+ 3 rows in set (0.00 sec)
4. REPLACE()関数でカラムの値を置換する
カラムの値を置換するためのクエリがこちらです。UPDATE文の中でREPLACE()関数を使用し、「9994-6464-8737」を「9994-9999-88888」に置き換えています。
mysql> update DemoTable set Code=replace(Code,'9994-6464-8737','9994-9999-88888'); Query OK, 1 row affected (0.10 sec) Rows matched : 3 Changed : 1 Warnings : 0
REPLACE()関数の基本構文:
REPLACE(対象カラム名, '置換前の文字列', '置換後の文字列')
この構文により、対象カラム内に「置換前の文字列」と一致する部分があれば、すべて「置換後の文字列」に置き換えられます。
5. 更新結果を確認する
もう一度テーブルのレコードを確認しましょう。
mysql> select *from DemoTable;
実行結果は以下の通りです。
+-----------------+ | Code | +-----------------+ | 8565-9848-7474 | | 9994-9999-88888 | | 6574-9090-7643 | +-----------------+ 3 rows in set (0.00 sec)
出力結果を見ると、該当するレコードの値が「9994-9999-88888」に正しく更新されていることがわかります。他のレコードには影響していません。
まとめ
MySQLでテキスト型カラムの一部を置換したい場合は、UPDATE文とREPLACE()関数を組み合わせるのが最もシンプルな方法です。部分一致する文字列だけを効率的に置き換えられるため、電話番号やコード類のフォーマット修正など、実務でも幅広く活用できます。
-
JavaのPreparedStatementを使ってMySQLテーブルを更新する方法
JavaからMySQLのテーブルを更新するには、PreparedStatementを使用するのが一般的で安全な方法です。PreparedStatementを使うことで、SQLインジェクションを防ぎつつ、パラメータを動的に設定できます。この記事では、実際にテーブルを作成し、Javaプログラムからレコードを更新するまでの一連の手順を解説します。1. テーブルの作成まず、MySQLで更新用のテーブルを作成しましょう。mysql> create table DemoTable( Id int, FirstName varchar(40) ); Query OK, 0 rows a
-
MySQLのAUTO_INCREMENTの使い方と実例解説
ここでは、MySQLにおける AUTO_INCREMENT の仕組みについて詳しく解説します。AUTO_INCREMENTとはAUTO_INCREMENT 属性は、新しい行に対して一意の識別子を自動的に生成するために使用されます。実際にどのように動作するのか、以下のクエリで確認してみましょう。サンプルクエリCREATE TABLE tableName ( id MEDIUMINT NOT NULL AUTO_INCREMENT, name CHAR(30) NOT NULL, PRIMARY KEY (id) ); INSERT INTO tableName (name