Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL 테이블에서 잘못된 이메일 주소를 찾는 방법

MySQL에서 유효하지 않은 이메일 주소 조회하기

MySQL 테이블에 저장된 데이터 중 형식이 올바르지 않은 이메일 주소를 찾아야 할 때가 있습니다. 이럴 때는 LIKE 연산자와 함께 NOT LIKE 절을 사용하면 간단하게 해결할 수 있습니다.

기본 문법

잘못된 이메일 주소를 찾으려면 아래와 같은 문법을 사용합니다.

SELECT yourColumnName FROM yourTableName
WHERE yourColumnName NOT LIKE '%_@_%._%';

위 패턴은 '문자@문자.문자'의 기본적인 이메일 형식을 검사합니다. 즉, @ 기호가 없거나 도메인의 마침표(.)가 누락된 이메일 주소가 모두 조회됩니다.

예제 테이블 생성

실제 동작을 확인하기 위해 먼저 예제 테이블을 만들어 보겠습니다.

mysql> create table FindInvalidEmailAddressDemo
-> (
-> Id int NOT NULL AUTO_INCREMENT,
-> Name varchar(20),
-> EmailAddress varchar(40),
-> PRIMARY KEY(Id)
-> );
Query OK, 0 rows affected (0.75 sec)

샘플 데이터 삽입 및 확인

이제 INSERT 명령으로 레코드를 추가합니다. 예제를 위해 의도적으로 잘못된 형식의 이메일 주소도 함께 넣었습니다.

mysql> select *from FindInvalidEmailAddressDemo;

조회 결과는 다음과 같습니다.

+----+-------+-------------------+
| Id | Name | EmailAddress |
+----+-------+-------------------+
| 1 | John | John12@gmail.com |
| 2 | Carol | Carol@hotmail.com |
| 3 | Mike | 123Mike@gmailcom |
| 4 | Bob | Bob909hotmail.com |
| 5 | David | David@gmail.com |
+----+-------+-------------------+
5 rows in set (0.00 sec)

위 결과에서 3번(Mike)과 4번(Bob)의 이메일이 형식에 맞지 않습니다. Mike의 주소에는 도메인 마침표가 없고, Bob의 주소에는 @ 기호가 빠져 있습니다.

잘못된 이메일 주소 조회 쿼리 실행

다음 쿼리를 실행하면 유효하지 않은 이메일 주소만 추출할 수 있습니다.

mysql> select EmailAddress from FindInvalidEmailAddressDemo
-> where EmailAddress NOT LIKE '%_@_%._%';

실행 결과, 잘못된 이메일 주소 목록이 출력됩니다.

+-------------------+
| EmailAddress |
+-------------------+
| 123Mike@gmailcom |
| Bob909hotmail.com |
+-------------------+
2 rows in set (0.00 sec)

정리

NOT LIKE '%_@_%._%' 패턴을 활용하면 별도의 외부 도구나 복잡한 정규식 없이도 MySQL만으로 기본적인 이메일 형식 오류를 손쉽게 걸러낼 수 있습니다. 다만 이 방법은 단순 패턴 검사이므로, 더 엄격한 유효성 검사가 필요하다면 애플리케이션 단계에서 정규식 기반 검증을 함께 적용하는 것이 좋습니다.