MySQLで列(カラム)の値を置き換える方法|UPDATE文の使い方を解説
MySQLでテーブルの特定の列(カラム)の値を置き換えたい場合には、UPDATE文を使用します。WHERE句で対象のレコードを指定することで、該当する行だけを安全に更新できます。
この記事では、実際のSQLサンプルを使いながら、列の値を置き換える手順を順番に解説していきます。
1. サンプルテーブルを作成する
まず、動作確認用のテーブルを作成しましょう。以下のクエリを実行します。
mysql> create table DemoTable
(
StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
Score int
);
Query OK, 0 rows affected (0.45 sec)このテーブルは、学生ID(StudentId)を主キーとし、点数(Score)を持つシンプルな構造です。
2. テストデータを挿入する
次に、INSERT文を使ってレコードをいくつか登録します。
mysql> insert into DemoTable(Score) values(56); Query OK, 1 row affected (0.24 sec) mysql> insert into DemoTable(Score) values(78); Query OK, 1 row affected (0.09 sec) mysql> insert into DemoTable(Score) values(34); Query OK, 1 row affected (0.10 sec) mysql> insert into DemoTable(Score) values(55); Query OK, 1 row affected (0.37 sec)
3. 登録されたデータを確認する
SELECT文ですべてのレコードを表示してみましょう。
mysql> select *from DemoTable;
実行結果は以下の通りです。
+-----------+-------+ | StudentId | Score | +-----------+-------+ | 1 | 56 | | 2 | 78 | | 3 | 34 | | 4 | 55 | +-----------+-------+ 4 rows in set (0.00 sec)
4. UPDATE文で列の値を置き換える
ここからが本題です。StudentIdが3のレコードのScoreを「95」に置き換えてみます。以下のようにUPDATE文とWHERE句を組み合わせます。
mysql> update DemoTable
set Score=95 where StudentId=3;
Query OK, 1 row affected (0.12 sec)
Rows matched : 1 Changed : 1 Warnings : 0「Rows matched : 1 Changed : 1」と表示されていることから、1件のレコードが正しく更新されたことがわかります。
注意ポイント
- WHERE句を忘れないこと: WHERE句を指定しないと、テーブル内のすべての行が更新されてしまいます。
- 対象レコードの一意な指定: 主キーなど一意に特定できる列を条件にすると、意図しないデータの書き換えを防げます。
5. 更新結果を確認する
もう一度SELECT文を実行して、テーブルの内容を確認しましょう。
mysql> select *from DemoTable;
実行結果は以下の通りです。
+-----------+-------+ | StudentId | Score | +-----------+-------+ | 1 | 56 | | 2 | 78 | | 3 | 95 | | 4 | 55 | +-----------+-------+ 4 rows in set (0.00 sec)
StudentIdが3のレコードのScoreが「34」から「95」に置き換わっていることが確認できました。
まとめ
MySQLで列の値を置き換えるには、UPDATE テーブル名 SET 列名=新しい値 WHERE 条件; という基本構文を使用します。WHERE句による条件指定を適切に行うことで、特定のレコードだけを安全に更新できます。本番環境でのデータ更新時には、事前にSELECT文で対象レコードを確認しておくと、誤操作のリスクを大幅に減らせますのでおすすめです。
-
MySQLのREPLACE関数で列の値に含まれる文字列を一括置換する方法
はじめにMySQLでは、UPDATE文とREPLACE()関数を組み合わせることで、テーブルの列に含まれる特定の文字列(特殊文字など)を簡単に一括置換できます。この記事では、実際のサンプルコードを使ってその手順をわかりやすく解説します。サンプルテーブルの作成まず、以下のコマンドでテーブルを作成します。mysql> create table DemoTable1574 -> ( -> StudentCode varchar(20) -> );Query OK, 0 rows affected (0.59 sec)レコードの挿入次に、INSERTコマンドを
-
MySQLクエリで列にユーザー定義の値を追加する方法
MySQLでは、UNION ALLを活用することで、既存の列の値に加えて、ユーザーが自由に定義した値をクエリ結果に追加できます。ここでは、ENUM型の列を持つテーブルを例に、その具体的な手順を解説します。 1. サンプルテーブルの作成 まず、ENUM型のカラムを持つテーブルを作成します。 mysql> create table DemoTable1847 ( GameStatus ENUM(PENDING,COMPLETED,CANCELLED) ); Query OK