Rất cơ bản sẽ là:
SELECT
EmailAddress,
CASE WHEN EmailAddress LIKE '%[email protected]_%_.__%'
AND EmailAddress NOT LIKE '%[any obviously invalid characters]%'
THEN 'Could be'
ELSE 'Nope'
END Validates
FROM
Table
Điều này khớp với mọi thứ có ký tự @ ở giữa, đứng trước ít nhất một ký tự, theo sau là ít nhất hai, một dấu chấm và ít nhất hai cho TLD.
Bạn có thể viết thêm LIKE
những mẫu thực hiện những việc cụ thể hơn, nhưng bạn sẽ không bao giờ có thể đối sánh mọi thứ có thể là địa chỉ e-mail trong khi không để lọt những thứ không phải vậy. Ngay cả với biểu thức chính quy, bạn cũng gặp khó khăn khi làm đúng. Ngoài ra, ngay cả việc so khớp theo các chữ cái của RFC cũng khớp với các cấu trúc địa chỉ sẽ không được hầu hết các hệ thống gửi email chấp nhận / sử dụng.
Thực hiện điều này ở cấp độ cơ sở dữ liệu dù sao cũng có thể là cách tiếp cận sai, vì vậy, kiểm tra độ tỉnh táo cơ bản như đã nêu ở trên có thể là cách tốt nhất bạn có thể có được về hiệu suất và thực hiện nó trong một ứng dụng sẽ cung cấp cho bạn sự linh hoạt hơn nhiều.