UPDATE
truy vấn bạn hiển thị giống hệt như:
UPDATE fromemailaddress f
SET call = true
FROM (
SELECT fromemailaddress
FROM email
WHERE subject ILIKE '%tester%'
) e
WHERE e.fromemailaddress = f.fromemailaddress;
subject ILIKE '%tester%'
tương đương nhanh hơn cho subject ~ 'tester'
. Thông tin chi tiết về LIKE
, ILIKE
và đối sánh biểu thức chính quy (~
) trong hướng dẫn sử dụng
hoặc trong câu trả lời liên quan này trên dba.SE:
Và hiệu quả giống như:
UPDATE fromemailaddress f
SET call = true
WHERE EXISTS (
SELECT 1
FROM email e
WHERE e.fromemailaddress = f.fromemailaddress
AND e.subject ILIKE '%tester%'
);
Sử dụng cái này thay thế.
Nếu có nhiều hàng trong bảng email
với cùng một fromemailaddress
khớp với một hàng trong fromemailaddress
, thì biểu mẫu này chỉ thực thi một cập nhật mỗi hàng, không giống như bản gốc đáng tiếc của bạn.
Đừng nhầm lẫn bởi thực tế là fromemailaddress
được sử dụng làm cột và làm tên bảng ở đây.
Đọc kỹ hướng dẫn sử dụng tại đây và tại đây . Cụ thể là bit này: