आप case
का उपयोग कर सकते हैं इसके लिए अभिव्यक्ति। मुझे लगता है कि आप जो तर्क चाहते हैं वह है:
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;
या यदि आप ईमेल और पासवर्ड को अपडेट करना चाहते हैं यदि दोनों null
नहीं हैं तब:
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;
अब प्रश्न अपडेट किया गया था और मैं समझता हूं कि आप अपडेट करना चाहते हैं यदि और केवल अगर दोनों ईमेल और पासवर्ड पैरामीटर खाली तार नहीं हैं। तो आप वास्तव में फ़िल्टरिंग करना चाहते हैं . मैं इसे इस प्रकार वाक्यांश दूंगा:
UPDATE users
SET username = Param1, email = Param2, password = Param3
WHERE id = Param4 and Param2 <> '' and Param3 <> ''
या यदि आप दोनों मापदंडों के लिए तर्क को अलग करना चाहते हैं:
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;