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

MySQL CẬP NHẬT có điều kiện các giá trị cột boolean của các hàng dựa trên danh sách trắng các id

Bạn đã quên thực hiện "ELSE" trong câu lệnh trường hợp chưa?

UPDATE my_table
    SET field = CASE
        WHEN id IN (/* true ids */) THEN TRUE
        WHEN id IN (/* false ids */) THEN FALSE
        ELSE field=field 
    END

Nếu không có ELSE, tôi giả sử rằng chuỗi đánh giá dừng lại ở WHEN cuối cùng và thực hiện cập nhật đó. Ngoài ra, bạn không giới hạn các hàng mà bạn đang cố gắng cập nhật; nếu bạn không làm ELSE, ít nhất bạn nên yêu cầu cập nhật chỉ cập nhật các hàng bạn muốn chứ không phải tất cả các hàng (như bạn đang làm). Xem mệnh đề WHERE bên dưới:

  UPDATE my_table
        SET field = CASE
            WHEN id IN (/* true ids */) THEN TRUE
            WHEN id IN (/* false ids */) THEN FALSE
        END
  WHERE id in (true ids + false_ids)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL VARCHAR (255) UTF8 quá dài đối với khóa, nhưng độ dài tối đa là 1000 byte

  2. Golang, mysql:Lỗi 1040:Quá nhiều kết nối

  3. MySql, PHP hiển thị Hình ảnh trên HTml

  4. Không có tệp hoặc thư mục như vậy hoặc Không có máy chủ lưu trữ như vậy được xác định khi chạy di chuyển

  5. Cách lấy ngày và giờ hiện tại trong MySQL