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

Cập nhật nhiều hàng với nhiều mệnh đề 'where' cho mỗi hàng riêng lẻ

Hãy thử cái này bằng cách sử dụng CASE

Update  MyTable 
SET     value = CASE 
                     WHEN  game_id = 1 AND x = -4 AND y = 8 THEN 1
                     WHEN  game_id = 1 AND x = -3 AND y = 7 THEN 2
                     WHEN  game_id = 2 AND x =  5 AND y = 2 THEN 3
                     ELSE  value 
                END
WHERE   game_ID IN (1,2,3) AND  -- the purpose of this WHERE clause
        x IN (-4, -3, 5) AND    -- is to optimize the query by preventing from
        y IN (8,7,2)            -- performing full table scan.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tạo kiểu biến ENUM trong MySQL

  2. 'IS DISTINCT FROM' có phải là toán tử MySQL thực không?

  3. Trong MySQL, làm thế nào để sao chép nội dung của một bảng này sang một bảng khác trong cùng một cơ sở dữ liệu?

  4. MySQL / Lỗi tệp ghi (Mã lỗi 28)

  5. Chỉ định lại quyền truy cập máy chủ cho người dùng MySQL