mysqlでforeachを使用してデータを一括更新する方法は何ですか?

MySQLでは、FOREACH文を使用してデータを一括更新することができます。

FOREACH文を使用してデータを一括更新する一般的な手順は次のとおりです:

  1. 最初に、更新するデータを格納するための一時テーブルを作成します。 一時テーブルの構造は、更新するテーブルの構造と同じである必要があります。
  2. 一時的なテーブルtemp_tableを作成し、カラムにid(INT)とname(VARCHAR(255))を含める。
  3. その後、更新するデータを一時テーブルに挿入します。データをソーステーブルから一時テーブルにコピーするには、INSERT INTO文を使用できます。
  4. temp_tableにidとnameを含む行を挿入する。
    source_tableから、条件に一致するidとnameを選択する。
  5. 次に、FOREACHステートメントを使用して一時テーブルの各行データを反復処理し、更新操作を実行します。データを更新するには、UPDATEステートメントを使用できます。
  6. doneというINT型の変数をFALSEで初期化する;
    temp_idというINT型の変数を宣言する;
    temp_nameという255文字までのVARCHAR型の変数を宣言する;
    …temp_tableからidとnameを選択するためのカーソルを宣言する;

    NOT FOUNDのハンドラーを設定して、doneをTRUEにする;

    カーソルをOPENする;

    read_loop: LOOP
    curからtemp_id、temp_name、…をFETCHする;
    IF doneがTRUEなら、read_loopを抜ける;
    END IF;

    temp_idと一致するidを持つtarget_tableの行を更新する;
    nameをtemp_nameに設定し、…
    END LOOP;

    カーソルをCLOSEする;

  7. 最後に、一時テーブルを削除します。
  8. 一時テーブルtemp_tableを削除します。

FOREACH文を使用してデータを一括更新する一般的な手順が示されています。実際の要件に合わせて適切な調整をお願いします。

bannerAds