Hola MaTy09:
Si quieres hacerlo desde mysql, podrías utilizar expresiones regulares (REGEXP) para encontrar aquellos correos que no cumplan con el patrón que estás definiendo, algo como esto:
Código:
REGEXP "^[a-zA-Z][a-zA-Z0-9.\-]*[a-zA-Z0-9.\-]@[a-zA-Z0-9][a-zA-Z0-9._\-]*[a-zA-Z0-9].[a-zA-Z]{2,4}$
"
Código MySQL:
Ver originalQuery OK, 0 rows affected (0.09 sec)
-> (4, '5asdasd@asdasdasd'),
Query OK, 5 rows affected (0.03 sec)
+------+------------------------------+
| id | correo |
+------+------------------------------+
| 4 | 5asdasd@asdasdasd |
+------+------------------------------+
-> "^[a-zA-Z][a-zA-Z0-9.\-]*[a-zA-Z0-9.\-]@[a-zA-Z0-9][a-zA-Z0-9._\-]*[a-zA-
Z0-9].[a-zA-Z]{2,4}$";
Query OK, 3 rows affected (0.09 sec)
+------+------------------------------+
| id | correo |
+------+------------------------------+
+------+------------------------------+
el correo 3 no es válido porque contiene un (_), el correo 4 no es válido porque comienza con un número y el correo 5 no es válido porque contiene dos (@). Aquí sería cuestión de que generes un patrón que cumpla con todos los criterios que puedas considerar, este es sólo un ejemplo de lo que puedes hacer. tu expresión puede ser tan simple o tan complicada como quieras.
Saludos.
Leo.