Koden:
DELIMITER $
DROP FUNCTION IF EXISTS `myDatabas`.`validateEmail` $$
CREATE FUNCTION `validateEmail`(t_email varchar(64)) RETURNS tinyint(1)
BEGIN
CASE
WHEN NOT (SELECT t_email REGEXP '^[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$')
THEN
-- om e-posten är fel
RETURN FALSE;
ELSE
-- pm e-posten är coolt
RETURN TRUE;
END CASE;
END $$
DELIMITER ;
Om e-post adressen är okej, får vi 1 annars får vi bara 0 förstås.
Jag använder just denna funktion för en nyhetsbrevs utskick som jag har gjort med .NET och så här ser min SQL-sats ut (förkortat för enkelhetensskull).
SELECT DISTINCT(email) FROM people WHERE validateEmail(email)=1
Inga kommentarer:
Skicka en kommentar