sql >> データベース >  >> RDS >> Mysql

mysqlは、CASEステートメントを使用して、それぞれ独自の値を持つ複数の行を更新します

    次のようなものを探しているようです:

    UPDATE tbl_accounts
    SET nation_id =
         CASE id_account
         WHEN 3 THEN 3331
         WHEN 5 THEN 5551
         ELSE nation_id
         END,
    group_id =
         CASE id_account
         WHEN 3 THEN 3332
         WHEN 5 THEN 5552
         ELSE group_id
         END
    

    ただし、この状況では、個別の更新を行うことが賢明な解決策です。上記のクエリでは、テーブル内のすべての行をチェックして、条件に一致するかどうかを確認する必要があります。 id_accountにインデックスがある場合(おそらく主キーのように見えるのでインデックスを作成します)、単一の行を更新するのは非常に高速です。

    UPDATE tbl_accounts SET nation_id = 3331, groupid = 3332 WHERE id_account = 3
    UPDATE tbl_accounts SET nation_id = 5551, groupid = 5552 WHERE id_account = 5
    



    1. JavaのMySQLスキーマパーサー?

    2. jquery phpは、ページを更新せずにmysqlにデータを挿入します

    3. カンマリストでのMySQL検索

    4. mysqlのビット単位のシフト