-
単一のUPDATE文で複数の行を更新する方法:
例えば、以下のようなテーブルがあるとします。
テーブル名: users +----+-------+--------+ | ID | Name | Status | +----+-------+--------+ | 1 | John | Active | | 2 | Alice | Active | | 3 | Bob | Inactive | +----+-------+--------+
このテーブルのStatusを一括で更新するためには、次のようなUPDATE文を使用します。
UPDATE users SET Status = 'Inactive' WHERE Status = 'Active';
この例では、Statusが'Active'の行を一括で'Inactive'に更新しています。
-
CASE文を使用して複数の条件に基づいて行を更新する方法:
CASE文を使用すると、複数の条件に基づいて行を更新することができます。以下は例です。
UPDATE users SET Status = CASE WHEN ID = 1 THEN 'Active' WHEN ID = 2 THEN 'Inactive' ELSE 'Unknown' END WHERE ID IN (1, 2);
この例では、IDが1の行のStatusを'Active'に、IDが2の行のStatusを'Inactive'に更新しています。
-
テンポラリテーブルを使用して複数の行を一括で更新する方法:
一時的なテーブルを使用する方法もあります。この方法では、まず一時的なテーブルを作成し、それを使用して複数の行を一括で更新します。
CREATE TEMPORARY TABLE temp_users (ID INT, Status VARCHAR(10)); INSERT INTO temp_users (ID, Status) VALUES (1, 'Active'), (2, 'Inactive'); UPDATE users SET Status = temp_users.Status FROM temp_users WHERE users.ID = temp_users.ID; DROP TABLE temp_users;
この例では、temp_usersという一時的なテーブルを作成し、そのテーブルを使用してusersテーブルの複数の行を一括で更新しています。
これらはデータベースで複数の行を一括で更新する一般的な方法のいくつかです。状況や要件に応じて、適切な方法を選択してください。