Tôi có một câu lệnh cập nhật cập nhật các trường x, y và z trong đó id = xx.Trường Cập nhật Khi Không Null
Trong bảng, tôi có một vài trường khác nhau x_created_datetime (cho các phần khác nhau của bản ghi được duy trì/nhập bởi những người khác nhau). Tôi muốn viết một truy vấn duy nhất sẽ cập nhật trường này nếu là null, nhưng để nó một mình nếu không phải là null.
Vì vậy, những gì tôi có là:
UPDATE newspapers
SET scan_notes = "data",
scan_entered_by = "some_name",
scan_modified_date = "current_unix_timestamp"
WHERE id = X
Những gì tôi cần là một cách để thêm vào những điều sau đây, nhưng vẫn luôn cập nhật trên:
scan_created_date = "current_unix_timestamp"
where scan_created_date is null
Tôi hy vọng tôi có thể làm điều này mà không cần giao dịch thứ hai cho DB. Bất kỳ ý tưởng về cách thực hiện điều này?
Nó có giá trị một lời giải thích ngắn gọn về lý do tại sao công trình này: liên hiệp trả về giá trị null đầu tiên trong danh sách các giá trị, vì vậy nếu scan_created_date là đã có , nó sẽ tự đặt thành giá trị đã có sẵn. Nếu nó là null, nó sẽ tự đặt cho dấu thời gian hiện tại. –
Sẽ không cập nhật này scan_created_date khi nó là null? Có vẻ như anh ấy muốn cập nhật nó ở nơi nó không phải là rỗng. – tloach
@tloach - xem giải thích. @JacobM - đã làm điều đó :) – cjk