मैं एक अद्यतन बयान अपडेट कर देता क्षेत्रों एक्स, वाई और जेड जहां आईडी = xx है।अद्यतन फील्ड जब अशक्त नहीं
तालिका में मैं (रिकॉर्ड के विभिन्न भागों है कि बनाए रखा जाता है/विभिन्न लोगों द्वारा दर्ज के लिए) कुछ अलग x_created_datetime क्षेत्रों की है। मैं एक ही प्रश्न लिखना चाहता हूं जो शून्य होने पर इस फ़ील्ड को अपडेट करेगा, लेकिन शून्य नहीं होने पर इसे अकेला छोड़ दें।
तो क्या मैं है:
UPDATE newspapers
SET scan_notes = "data",
scan_entered_by = "some_name",
scan_modified_date = "current_unix_timestamp"
WHERE id = X
क्या मैं जरूरत निम्नलिखित में जोड़ने के लिए एक रास्ता है, लेकिन अभी भी हमेशा अद्यतन ऊपर:
scan_created_date = "current_unix_timestamp"
where scan_created_date is null
मैं आशा करती हूं कि मैं क्या कर सकते हैं यह डीबी को दूसरे लेनदेन के बिना। इसे पूरा करने के तरीके पर कोई विचार?
यह कारण है कि इस काम करता है की एक संक्षिप्त व्याख्या के लायक है का उपयोग करते हुए एक तैयार बयान में नीचे की तरह उपयोग कर सकते हैं: सम्मिलित रिटर्न मूल्यों की अपनी सूची में पहली गैर शून्य मान, इसलिए यदि scan_created_date पहले से ही वहाँ है , यह खुद को उस मूल्य पर सेट कर देगा जो पहले से मौजूद है। यदि यह शून्य है, तो यह खुद को वर्तमान टाइमस्टैंप पर सेट कर देगा। –
क्या यह शून्य होने पर scan_created_date को अपडेट नहीं करेगा? ऐसा लगता है कि वह इसे अपडेट करना चाहता है जहां यह शून्य नहीं है। – tloach
@tloach - स्पष्टीकरण देखें। @JacobM - यह पहले से ही कर रहा था :) – cjk