Bạn có thể sử dụng case
biểu thức cho điều này. Tôi nghĩ rằng logic bạn muốn là:
UPDATE users
SET
username = Param1
email = case when email is not null then Param2 end,
password = case when password is not null then Param3 end
WHERE id = Param4;
Hoặc nếu bạn muốn cập nhật email và mật khẩu nếu cả hai không phải là null
sau đó:
UPDATE users
SET
username = Param1
email = case when email is not null and password is not null then Param2 end,
password = case when email is not null and password is not null then Param3 end
WHERE id = Param4;
Bây giờ câu hỏi đã được cập nhật và tôi hiểu rằng bạn muốn thực hiện cập nhật nếu và chỉ khi cả email và mật khẩu tham số không phải là các chuỗi rỗng. Vì vậy, bạn thực sự muốn lọc . Tôi sẽ đặt cụm từ này là:
UPDATE users
SET username = Param1, email = Param2, password = Param3
WHERE id = Param4 and Param2 <> '' and Param3 <> ''
Hoặc nếu bạn muốn tách logic cho cả hai tham số:
UPDATE users
SET
username = Param1,
email = case when Param2 <> '' then Param2 else email end,
password = case when Param3 <> '' then Param3 else password end
WHERE id = Param4;