Bardzo podstawowym będzie:
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
Dopasowuje wszystko ze znakiem @ w środku, poprzedzony co najmniej jeden znak, a następnie przez co najmniej dwie, kropka i co najmniej dwóch dla TLD .
Możesz napisać więcej wzorów LIKE
, które wykonują więcej konkretnych czynności, ale nigdy nie będziesz w stanie dopasować wszystkiego, co może być adresem e-mail, nie pozwalając jednak przeskoczyć rzeczy, które nie są. Nawet przy wyrażeń regularnych masz trudności z robieniem tego poprawnie. Dodatkowo, nawet dopasowanie zgodne z literami RFC dopasowuje konstrukcje adresowe, które nie będą akceptowane/używane przez większość systemów pocztowych.
Wykonanie tego na poziomie bazy danych jest być może błędnym podejściem, więc podstawowa kontrola poprawności, jak wskazano powyżej, może być najlepsza z punktu widzenia wydajności, a wykonanie jej w aplikacji zapewni znacznie większą elastyczność.
możliwe duplikat [skrypt SQL, aby znaleźć nieprawidłowych adresów e-mail] (http://stackoverflow.com/questions/801166/sql-script- to-find-invalid-email-addresses) – Neolisk