MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLで1つのカラムの全行に同じ値を一括設定する方法

MySQLである1つのカラム(列)に含まれるすべての値を一括して同じ値に変更したい場合は、UPDATE文を使用します。WHERE句を指定しないことで、テーブル内の全レコードが更新対象となります。

基本構文

UPDATE テーブル名 SET カラム名 = 設定する値;

それでは、実際の例を使ってこの構文を確認していきましょう。

サンプルテーブルの作成

まず、動作確認用のテーブルを作成します。以下のクエリを実行します。

mysql> create table setAllValuesDemo
    -> (
    -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> Name varchar(20),
    -> Amount int
    -> );
Query OK, 0 rows affected (0.64 sec)

テストデータの挿入

次に、INSERT文を使っていくつかのレコードを登録します。

mysql> insert into setAllValuesDemo(Name,Amount) values('John',2345);
Query OK, 1 row affected (0.22 sec)
mysql> insert into setAllValuesDemo(Name,Amount) values('Carol',47586);
Query OK, 1 row affected (0.13 sec)
mysql> insert into setAllValuesDemo(Name,Amount) values('Bob',95686);
Query OK, 1 row affected (0.15 sec)
mysql> insert into setAllValuesDemo(Name,Amount) values('David',95667);
Query OK, 1 row affected (0.15 sec)

登録データの確認

SELECT文ですべてのレコードを表示してみましょう。

mysql> select * from setAllValuesDemo;

実行結果は以下のとおりです。

+----+-------+--------+
| Id | Name  | Amount |
+----+-------+--------+
| 1  | John  | 2345   |
| 2  | Carol | 47586  |
| 3  | Bob   | 95686  |
| 4  | David | 95667  |
+----+-------+--------+
4 rows in set (0.00 sec)

カラム全体を一括更新する

ここからが本題です。「Amount」カラムのすべての値を「10500」に一括変更するには、以下のようにUPDATE文を実行します。

mysql> update setAllValuesDemo set Amount=10500;
Query OK, 4 rows affected (0.20 sec)
Rows matched: 4 Changed: 4 Warnings: 0

「Rows matched: 4 Changed: 4」と表示されており、4件すべてのレコードが正常に更新されたことがわかります。

更新結果の確認

もう一度SELECT文を実行して、更新後のデータを確認しましょう。

mysql> select * from setAllValuesDemo;

実行結果は以下のとおりです。

+----+-------+--------+
| Id | Name  | Amount |
+----+-------+--------+
| 1  | John  | 10500  |
| 2  | Carol | 10500  |
| 3  | Bob   | 10500  |
| 4  | David | 10500  |
+----+-------+--------+
4 rows in set (0.00 sec)

まとめ

このように、UPDATE文でWHERE句を省略すれば、指定したカラムの全行に対して同じ値を一括設定できます。なお、WHERE句を付け忘れると意図しない大量更新につながる恐れがあるため、本番環境で操作する際は十分に注意してください。特定の条件に合う行だけを更新したい場合は、「WHERE カラム名 = 値」のような条件句を必ず追加するようにしましょう。

  1. MySQLで1つのINSERT文を使って列に複数の値を一括挿入する方法

    はじめにMySQLでは、1つのINSERT文を繰り返し実行しなくても、単一のクエリだけで同じ列に複数の値を挿入できます。VALUES句の後ろに、挿入したい値をカンマ区切りのタプル(行)として列挙するだけです。この方法はデータベースへの接続回数を減らせるため、大量のデータを登録する際にパフォーマンス面でも大きなメリットがあります。基本構文複数の値を1つの列に挿入する場合の基本構文は以下のとおりです。INSERT INTO テーブル名 VALUES(値1),(値2),...,(値N);このように、各値を丸括弧で囲み、カンマ(,)で区切って並べることで、1回のクエリで複数行をまとめて挿入できます。実

  2. MySQLクエリで列名にエイリアス(別名)を設定する方法

    MySQLでは、SELECT文を使って列名に「エイリアス(別名)」を設定できます。エイリアスを利用すると、出力結果の見出しをわかりやすい名前に変更でき、レポート作成やアプリケーションでのデータ表示が格段に読みやすくなります。列名にエイリアスを設定する基本構文SELECT yourColumnName1 anyAliasName1, yourColumnName2 anyAliasName2FROM yourTableName anyAliasName;このように、列名の後にスペースを空けて任意の別名を記述するだけで、その列の表示名がエイリアスに置き換わります。テーブル名にも同様にエイリアスを設