MySQLの既存カラムにデータを追記する方法|CONCAT関数の使い方を解説
MySQLでは、すでにデータが格納されているカラムに新しい文字列を追加(追記)したいケースがあります。例えば、姓だけが保存されているカラムに名前を後から付け足したい場合などです。そんなときに便利なのが、MySQLに組み込まれているCONCAT()関数です。
CONCAT()関数を使ったデータ追記の基本構文
CONCAT()関数を使えば、既存の値と追加したい値を連結できます。UPDATE文と組み合わせることで、カラム内のデータに文字列を追記できます。基本的な構文は以下のとおりです。
UPDATE テーブル名
SET カラム名 = CONCAT(カラム名, '追加する値');
この構文では、元のカラムの値をそのままCONCAT()の引数に渡し、その後ろに追加したい文字列を連結しています。
実際にテーブルを作成して試してみよう
それでは、具体的な例を見ていきましょう。まずはサンプル用のテーブルを作成します。
1. テーブルの作成
mysql> CREATE TABLE AppendingDataDemo
-> (
-> FirstNameAndLastName VARCHAR(200)
-> );
Query OK, 0 rows affected (0.59 sec)
ここでは「FirstNameAndLastName」という1つのカラムを持つテーブルを作成しました。
2. レコードの挿入
次に、INSERTコマンドを使っていくつかのレコードを登録します。
mysql> INSERT INTO AppendingDataDemo VALUES('John');
Query OK, 1 row affected (0.27 sec)
mysql> INSERT INTO AppendingDataDemo VALUES('Bob');
Query OK, 1 row affected (0.20 sec)
mysql> INSERT INTO AppendingDataDemo VALUES('Carol');
Query OK, 1 row affected (0.30 sec)3. 登録データの確認
SELECT文ですべてのレコードを表示してみましょう。
mysql> SELECT * FROM AppendingDataDemo;
実行結果は以下のとおりです。
+----------------------+
| FirstNameAndLastName |
+----------------------+
| John |
| Bob |
| Carol |
+----------------------+
3 rows in set (0.00 sec)
既存データへの文字列追記を実行する
それでは、このカラムの各レコードに対して「Taylor」という文字列を追記してみます。先ほど紹介したCONCAT()関数を使ったUPDATE文を実行します。
mysql> UPDATE AppendingDataDemo
SET FirstNameAndLastName = CONCAT(FirstNameAndLastName, ' Taylor');
Query OK, 3 rows affected (0.10 sec)
Rows matched: 3 Changed: 3 Warnings: 0
実行結果を見ると、「3 rows affected」「Changed: 3」と表示されており、3件すべてのレコードが更新されたことがわかります。
更新結果の確認
最後に、SELECT文でデータが正しく追記されたかを確認しましょう。
mysql> SELECT * FROM AppendingDataDemo;
実行結果は以下のとおりです。
+----------------------+
| FirstNameAndLastName |
+----------------------+
| John Taylor |
| Bob Taylor |
| Carol Taylor |
+----------------------+
3 rows in set (0.00 sec)
すべてのレコードの末尾に「Taylor」が追加され、「John Taylor」「Bob Taylor」「Carol Taylor」になっていることが確認できました。
まとめ
MySQLで既存のカラムにデータを追記したい場合は、CONCAT()関数とUPDATE文を組み合わせるのが最もシンプルな方法です。ポイントは以下の3つです。
- CONCAT()の第1引数に既存のカラム名を指定することで、元の値を保持したまま追記できる
- 第2引数以降に追加したい文字列を指定する(スペースが必要な場合は明示的に含める)
- WHERE句を付けなければ全レコードが更新対象になるため、特定の行だけ更新したい場合は条件を忘れずに指定する
なお、NULLが含まれる可能性があるカラムの場合は、CONCAT_WS()やIFNULL()を併用するとより安全に処理できます。用途に応じて使い分けてみてください。
-
MySQLのTEXTデータ型フィールドに格納された文字列を連結する方法
MySQLのTEXTデータ型として定義されたフィールドの値に、別の文字列を連結したい場合には、CONCAT()関数を使用します。CONCAT()関数は、複数の文字列を1つに結合するための便利な関数で、UPDATE文と組み合わせることで、既存のフィールド値の末尾に新しい文字列を追加できます。ここでは、実際のサンプルを通して手順を解説します。1. テーブルの作成まず、TEXTデータ型のカラムを持つテーブルを作成します。mysql> create table DemoTable644 (Title text); Query OK, 0 rows affected (0.81 sec)2. レコ
-
MySQLでフィールドから部分的なデータを削除する方法|UPDATE文とREPLACE()関数の使い方
MySQLでは、フィールドに格納された文字列データの一部だけを削除したいケースがよくあります。例えば、テキスト型カラムの中から特定のタグや不要な文字列を取り除きたい場合などです。こうした「部分的なデータ削除」を実現するには、UPDATE文とREPLACE()関数を組み合わせて使用します。この記事では、実際にテーブルを作成し、サンプルデータを挿入しながら、REPLACE()を使った部分削除の手順をわかりやすく解説します。1. テーブルの作成まず、ゲーム情報を格納するためのテーブルを作成しましょう。ここでは、GameDetailsというTEXT型のカラムを持つテーブルを定義します。mysql>