UPDATE
आपके द्वारा प्रदर्शित क्वेरी बिल्कुल वैसी ही है:
UPDATE fromemailaddress f
SET call = true
FROM (
SELECT fromemailaddress
FROM email
WHERE subject ILIKE '%tester%'
) e
WHERE e.fromemailaddress = f.fromemailaddress;
subject ILIKE '%tester%'
subject ~ 'tester'
. के लिए एक तेज़ समकक्ष है . LIKE
. के लिए विवरण , ILIKE
और रेगुलर एक्सप्रेशन मिलान (~
) मैनुअल में
या dba.SE पर इस संबंधित उत्तर में:
और प्रभावी ढंग से वही:
UPDATE fromemailaddress f
SET call = true
WHERE EXISTS (
SELECT 1
FROM email e
WHERE e.fromemailaddress = f.fromemailaddress
AND e.subject ILIKE '%tester%'
);
इसके बजाय इसका इस्तेमाल करें।
यदि तालिका में एक से अधिक पंक्तियाँ होनी चाहिए email
उसी के साथ fromemailaddress
fromemailaddress
. में एक पंक्ति का मिलान करना , तो यह फ़ॉर्म केवल एक निष्पादित करता है आपके दुर्भाग्यपूर्ण मूल के विपरीत, प्रति पंक्ति अपडेट करें।
इस तथ्य से भ्रमित न हों कि fromemailaddress
यहां कॉलम और टेबल नाम के रूप में प्रयोग किया जाता है।
मैनुअल को ध्यान से पढ़ें यहां और यहां . विशेष रूप से यह बिट: