Validare gli indirizzi e-mail in MySql


Validazione degli indirizzi e-mail in Mysql.

Questa query è molto utile per validare gli indirizzi e-mail presenti in una tabella di una banca dati MySql. Ovviamente è necessario sostituire “nome_tabella” con il nome della vostra tabella contenente gli indirizzi e-mail e “email” con il nome del relativo campo.

Query per elencare gli indirizzi e-mail non validi:

1
2
3
4
5
6
7
8
9
10
11
SELECT * FROM `<strong>nome_tabella</strong>` WHERE ((LOCATE(_latin1'
', LTRIM(RTRIM(`<strong>nome_tabella</strong>`.`<strong>email</strong>`))) &lt;&gt; 0) OR
(LEFT(LTRIM(`<strong>nome_tabella</strong>`.`<strong>email</strong>`), 1) = _latin1'@') OR
(RIGHT(RTRIM(`<strong>nome_tabella</strong>`.`<strong>email</strong>`), 1) = _latin1'.') OR
((LOCATE(_latin1'.', `<strong>nome_tabella</strong>`.`<strong>email</strong>`,LOCATE(_latin1'@', `<strong>nome_tabella</strong>`.`<strong>email</strong>`))
- LOCATE(_latin1'@', `<strong>nome_tabella</strong>`.`<strong>email</strong>`)) &lt;= 1) OR
((LENGTH(LTRIM(RTRIM(`<strong>nome_tabella</strong>`.`<strong>email</strong>`))) -
LENGTH(REPLACE(LTRIM(RTRIM(`<strong>nome_tabella</strong>`.`<strong>email</strong>`)), _latin1'@', _latin1''))) &lt;&gt; 1) OR
(LOCATE(_latin1'.', REVERSE(LTRIM(RTRIM(`<strong>nome_tabella</strong>`.`<strong>email</strong>`)))) &lt;
3) OR (LOCATE(_latin1'.@', `<strong>nome_tabella</strong>`.`<strong>email</strong>`) &lt;&gt; 0) OR
(LOCATE(_latin1'..', `<strong>nome_tabella</strong>`.`<strong>email</strong>`) &lt;&gt; 0));

Per eliminarli dalla nostra banca dati, basta sostituire il “SELECT *” con “DELETE”:

1
2
3
4
5
6
7
8
9
10
11
DELETE FROM `<strong>nome_tabella</strong>` WHERE ((LOCATE(_latin1'
', LTRIM(RTRIM(`<strong>nome_tabella</strong>`.`<strong>email</strong>`))) &lt;&gt; 0) OR
(LEFT(LTRIM(`<strong>nome_tabella</strong>`.`<strong>email</strong>`), 1) = _latin1'@') OR
(RIGHT(RTRIM(`<strong>nome_tabella</strong>`.`<strong>email</strong>`), 1) = _latin1'.') OR
((LOCATE(_latin1'.', `<strong>nome_tabella</strong>`.`<strong>email</strong>`,LOCATE(_latin1'@', `<strong>nome_tabella</strong>`.`<strong>email</strong>`))
- LOCATE(_latin1'@', `<strong>nome_tabella</strong>`.`<strong>email</strong>`)) &lt;= 1) OR
((LENGTH(LTRIM(RTRIM(`<strong>nome_tabella</strong>`.`<strong>email</strong>`))) -
LENGTH(REPLACE(LTRIM(RTRIM(`<strong>nome_tabella</strong>`.`<strong>email</strong>`)), _latin1'@', _latin1''))) &lt;&gt; 1) OR
(LOCATE(_latin1'.', REVERSE(LTRIM(RTRIM(`<strong>nome_tabella</strong>`.`<strong>email</strong>`)))) &lt;
3) OR (LOCATE(_latin1'.@', `<strong>nome_tabella</strong>`.`<strong>email</strong>`) &lt;&gt; 0) OR
(LOCATE(_latin1'..', `<strong>nome_tabella</strong>`.`<strong>email</strong>`) &lt;&gt; 0));

Lascia una risposta