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)