データベースの複数行の更新方法


  1. 単一の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'に更新しています。

  2. 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'に更新しています。

  3. テンポラリテーブルを使用して複数の行を一括で更新する方法:

    一時的なテーブルを使用する方法もあります。この方法では、まず一時的なテーブルを作成し、それを使用して複数の行を一括で更新します。

    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テーブルの複数の行を一括で更新しています。

これらはデータベースで複数の行を一括で更新する一般的な方法のいくつかです。状況や要件に応じて、適切な方法を選択してください。