MySQLで列内の特定の文字を置き換える方法|REPLACE()関数とUPDATE文の使い方
MySQLである列に含まれる特定の文字を別の文字に置き換えたい場合、REPLACE() 関数と UPDATE 文を組み合わせることで簡単に実現できます。この記事では、実際のサンプルコードを交えながら、具体的な手順をわかりやすく解説します。
1. テーブルを作成する
まずは動作確認用のサンプルテーブルを作成しましょう。ここでは「Code」という varchar 型のカラムを持つテーブルを定義します。
mysql> create table DemoTable1899
(
Code varchar(20)
);
Query OK, 0 rows affected (0.00 sec)2. テストデータを挿入する
次に、INSERT 文を使っていくつかのレコードを登録します。すべてのデータにアンダースコア(_)が含まれている点に注目してください。
mysql> insert into DemoTable1899 values('John_123');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1899 values('32189_Sam_987');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1899 values('Miller_David_456_909');
Query OK, 1 row affected (0.00 sec)3. 現在のレコードを確認する
SELECT 文で全レコードを表示し、現状を確認しておきます。
mysql> select * from DemoTable1899;
実行結果は以下の通りです。
+----------------------+ | Code | +----------------------+ | John_123 | | 32189_Sam_987 | | Miller_David_456_909 | +----------------------+ 3 rows in set (0.00 sec)
4. REPLACE() と UPDATE で文字を置き換える
いよいよ本題です。REPLACE() 関数は「REPLACE(対象カラム, 置換前の文字列, 置換後の文字列)」という形式で使用します。ここでは、アンダースコア(_)を空文字('')に置き換えてみましょう。
mysql> update DemoTable1899 set Code=replace(Code,'_',''); Query OK, 3 rows affected (0.00 sec) Rows matched: 3 Changed: 3 Warnings: 0
UPDATE 文を実行すると、条件に一致したすべての行に対して一括で置換処理が適用されます。
5. 置換後の結果を確認する
もう一度 SELECT 文を実行して、更新結果をチェックしてみましょう。
mysql> select * from DemoTable1899;
実行結果は以下の通りです。
+-------------------+ | Code | +-------------------+ | John123 | | 32189Sam987 | | MillerDavid456909 | +-------------------+ 3 rows in set (0.00 sec)
まとめ
MySQLで列内の特定の文字を置き換えるには、UPDATE 文と REPLACE() 関数を組み合わせるのが基本です。REPLACE() の第2引数に置換したい文字列、第3引数に置換後の文字列を指定すれば、複数箇所に含まれる文字でもすべて一括で置換できます。なお、大規模なテーブルを更新する場合は、事前にバックアップを取得したり、WHERE 句で対象行を絞り込んだりすることをおすすめします。
-
MySQLで列(カラム)を分割する方法!SUBSTRING_INDEX関数の使い方を徹底解説
MySQLで列を分割するには?SUBSTRING_INDEX関数の基本MySQLで1つの列に格納された文字列を区切り文字で分割したい場合、SUBSTRING_INDEX()関数を使用します。この記事では、アンダースコア(_)で区切られた氏名データを分割する具体例を通じて、その使い方をわかりやすく解説します。1. サンプルテーブルの作成まず、以下のコマンドでテーブルを作成します。mysql> create table DemoTable -> ( -> Name varchar(40) -> );Query OK, 0 rows affected (1.
-
MySQLでシーケンスを作成する方法|AUTO_INCREMENTの使い方とルールを解説
MySQLにおけるシーケンスとは?MySQLにおける「シーケンス」とは、1(指定した場合は0)から始まり、昇順で自動生成される整数の連番のことです。多くのアプリケーションでは、レコードを一意に識別するための番号を発行する目的でシーケンスが利用されています。具体例代表的な例としては、CRMシステムの顧客ID、人事管理システムの社員番号、設備管理システムの機器番号などが挙げられます。MySQLでシーケンスを自動的に作成するには、対象のカラムにAUTO_INCREMENT属性を設定します。通常は、主キー(PRIMARY KEY)カラムに対して適用するのが一般的です。AUTO_INCREMENTを使用