[MySQL] W jaki sposób zweryfikować poprawność adresu e-mail ?

Bazy danych
[MySQL] W jaki sposób zweryfikować poprawność adresu e-mail ?

Weryfikacja poprawności adresów mailowych jest bardzo standardową operacją z którą spotkamy się na każdym kroku. Jednak niezbyt często spotyka się taką funkcjonalność po stronie baza danych, jest to związane z tym że nie jest to jej zadaniem choć jak poniżej zaprezentuję jest to jak najbardziej możliwe.

Aby móc zweryfikować poprawność adresu e-mail za pomocą MySQL-a musimy utworzyć funkcję która będzie realizowała to zadanie. Pisanie funkcji zaczynamy od DELIMITER, który powoduje że znak średnika traci swoje znaczenie i nie spowoduje wywołania części funkcji. Po zakończeniu pisania samej funkcji wpisujemy DELIMITER; dzięki czemu średnik odzyskał swoje pierwotne znaczenie. Więc najważniejsza część wygląda w następujący sposób:

DELIMITER //
 
...tutaj umieścimy funkcję...
 
DELIMITER ;

Następnie tworzymy funkcję, ogólna budowa funkcji w mysql-u wygląda w następujący sposób:

CREATE FUNCTION nazwa(...lista parametrów...) RETURNS
BEGIN
...ciało funkcji...
END

Tak więc skoro wiemy jak prawidłowo utworzyć funkcję tworzymy funkcję do weryfikacji adresów e-mail:

DELIMITER //

CREATE FUNCTION `validEmail`(email varchar(255)) RETURNS tinyint(1)
BEGIN
 
CASE
WHEN (SELECT email REGEXP '^[0-9a-zA-Z_.-]+@([0-9a-zA-Z-]+[.])+
[a-zA-Z]{2,6}$')
THEN RETURN TRUE;
ELSE RETURN FALSE;
END CASE;
 
END

DELIMITER ;

Jak widzimy funkcja powstała według schematu, który poznaliśmy na początku. Jedyne nowości to REGEXP, który oznacza wyrażenie regularne i zostanie ono zastosowane na adresie e-mail w celu weryfikacji jego poprawności.

Aby teraz wykorzystać funkcję którą napisaliśmy należy wykonać następujące polecenie:

SELECT validEmail('adres@email.pl');