Anda dapat menggunakan case
ekspresi untuk ini. Saya pikir logika yang Anda inginkan adalah:
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;
Atau jika Anda ingin memperbarui email dan sandi jika keduanya bukan null
lalu:
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;
Sekarang pertanyaan telah diperbarui dan saya mengerti bahwa Anda ingin melakukan pembaruan jika dan hanya jika email dan sandi parameter bukan string kosong. Jadi Anda sebenarnya ingin memfilter . Saya akan mengatakan ini sebagai:
UPDATE users
SET username = Param1, email = Param2, password = Param3
WHERE id = Param4 and Param2 <> '' and Param3 <> ''
Atau jika Anda ingin memisahkan logika untuk kedua parameter:
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;