Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

mysql cập nhật nhiều hàng, mỗi hàng có giá trị riêng, với câu lệnh CASE

Có vẻ như bạn đang tìm kiếm thứ gì đó như thế này:

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

Nhưng thực hiện các bản cập nhật riêng biệt là một giải pháp hợp lý trong tình huống này. Truy vấn trên sẽ yêu cầu kiểm tra mọi hàng trong bảng để xem nó có phù hợp với điều kiện hay không. Nếu bạn có một chỉ mục trên id_account (và có lẽ bạn làm như nó có vẻ là khóa chính) thì sẽ rất nhanh để cập nhật một hàng.

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để lưu trữ một mảng các giá trị boolean trong cơ sở dữ liệu MySql?

  2. Có khả năng nào để nghe trên bàn / trường sql với lạc đà không?

  3. Tại sao tôi gặp lỗi MySQL # 1312 khi sử dụng thủ tục lưu trữ đơn giản?

  4. Ngày MySQL Thay đổi thành Ngày hôm qua Sau khi Lưu JPA

  5. Cách cập nhật bảng tổng hợp bằng Eloquent trong laravel 5