'전자 메일'과 '값'열이있는 '고객'테이블이 있습니다. '전자 메일'열에는 전자 메일 주소가 포함되어 있으며 '값'열에는 NULL 값이 들어 있습니다. 이제 전자 메일이 올바른 형식 (@ bc)으로되어 있고 '값'열이 '참'으로 설정되어 있고 전자 메일 주소가 잘못된 형식 (abc 또는 @bc) 인 경우 업데이트 명령을 작성하고 싶습니다. '값'열을 '거짓'으로 설정하십시오. 이제 내 질문은 SQL 명령을 작성하여 어떤 이메일 주소가 올바른지 알아내는 것입니다. 어떤 제안 바랍니다. 감사.전자 메일 주소가있는 SQL 테이블 열
답변
즉, SQL 측 떨어져 훨씬 더 확인하는 코드, 당신이 그 이메일 주소를 얻기 위해 사용하는 어느 언어로 그 쓰기, 그럼 그냥 간단한 쿼리
DBMS에 정상적인 RegEx 지원이 없다면 이점이 없습니다. –
당신이 사용하는 경우를 사용하여 업데이트를 수행 SQL- 서버 예제 (here에서 가져옴)를 사용하면 도움이됩니다.
IF (
CHARINDEX(' ',LTRIM(RTRIM(@email_address))) = 0
AND LEFT(LTRIM(@email_address),1) <> '@'
AND RIGHT(RTRIM(@email_address),1) <> '.'
AND CHARINDEX('.',@email_address ,CHARINDEX('@',@email_address)) - CHARINDEX('@',@email_address) > 1
AND LEN(LTRIM(RTRIM(@email_address))) - LEN(REPLACE(LTRIM(RTRIM(@email_address)),'@','')) = 1
AND CHARINDEX('.',REVERSE(LTRIM(RTRIM(@email_address)))) >= 3
AND (CHARINDEX('[email protected]',@email_address) = 0 AND CHARINDEX('..',@email_address) = 0)
)
print 'valid email address'
ELSE
print 'not valid'
가 나는 UPDATE...
와 print
코드를 변경하면 일을 할 것이라고 생각합니다.
@Abe Miessler : 당신은 절대적으로 맞습니다! 나는 그 부분을 삭제했다 ... 감사합니다 :) – Marco
프런트 엔드에서이를 수행하고 전자 메일과 함께 데이터베이스에 유효성 검사 결과를 전달하는 것이 훨씬 낫습니다. 이것은 정규식 일치에 대한 좋은 사례 인 것 같습니다.
SQL Server 2005 이상을 사용하는 경우 전자 메일의 유효성을 검사하는 CLR 기능을 만드는 것이 좋습니다. 이 기능은 사용자의 전자 메일 주소에 대한 정규식을 찾을 일단 http://msdn.microsoft.com/en-us/magazine/cc163473.aspx
(아래 시도)와 같은 업데이트 문 사용 :이 작업을 수행하는 방법을 이해하기 위해이 문서에서 봐
UPDATE Customers
SET Value = dbo.RegexMatch(email , N'^[A-Z0-9._%-][email protected][A-Z0-9.-]+\.[A-Z]{2,4}$')
을이메일 주소가
권리 인 알 동안에 올바른 패턴에 맞는 실패 데이터베이스 값에을 확인 하기 위해 할 수있는 전자 메일 주소의 경우 을 확인하면 전자 메일 주소를 사용하여 해당받는 사람에게 연락 할 수 있는지 여부를 확인할 수 없습니다 (닫힌 세계 가정이 적용됨).
패턴 일치 지원은 SQL 구현마다 다릅니다. 예를 들어 SQL Server는 단순한 패턴 일치를 위해 LIKE
입니다. 특정 실패에 대해 여러 개의 테스트를 작성하는 것이 가장 좋습니다. 정확히 하나의 @
심볼을 포함하지 않으며, 도메인이없고, 너무 길거나, 허용 된 것 이외의 문자가 포함됩니다. 각 테스트에 고유 한 제약 조건 이름을 부여하면보다 세밀한 오류 메시지를 표시 할 수 있습니다. 사용자에게 전달됩니다.
- 1. Zope Plone 3.1.2 - 전자 메일 주소가있는 모든 사용자 내보내기
- 2. Sql 서버 전자 메일 서버
- 3. PHP/MYSQL : 전자 메일 알림 데이터베이스 테이블
- 4. sql 서버에서 전자 메일 보내기
- 5. SQL 서버에서 전자 메일 보내기
- 6. 전자 메일 주소로 자동으로 SQL 테이블 내용 보내기
- 7. 제어 전자 메일 주소
- 8. PHP/MYSQL 중복 된 전자 메일 주소
- 9. 확인 된 전자 메일 주소가있는 계정을 사용하여 확인되지 않은 전자 메일 주소의 계정과 병합 할 수 있습니까?
- 10. 전자 메일 클라이언트 호환 전자 메일 보내기
- 11. 검은 딸기 전자 메일 응용 프로그램에서 특정 전자 메일 열기
- 12. 기본 전자 메일 프로그램을 사용하여 새 전자 메일 메시지 만들기
- 13. 알림으로 전자 메일 보내기
- 14. 전자 메일 알림 서비스
- 15. SQl 참조 테이블 - 동적 열
- 16. SQL Server에서 누락 된 전자 메일 찾기
- 17. SQL Server 2008에서 대량 전자 메일 보내기
- 18. 트리거를 사용하여 SQL Express에서 전자 메일 보내기
- 19. SQL 실행 목록의 전자 메일 목록
- 20. Microsoft SQL Server 전자 메일 유효성 검사
- 21. SQL Server 2008에 전자 메일 보내기
- 22. 1 시간마다 SQL 서버 전자 메일 보내기
- 23. 전자 메일 알림
- 24. 전자 메일 읽기/undread 메일
- 25. 이메일 주소가있는 Asp.Net 인증
- 26. 전자 메일 문자열을 ASCII 문자로 변환하려면 어떻게합니까?
- 27. Python : 전자 메일 주소를 HTML 링크로 변환
- 28. 전자 메일 파일 .bat 파일을 통한 링크. 전체 링크가 전자 메일 전자 메일 본문을 표시하지 않습니다.
- 29. 응용 프로그램 전자 메일 아키텍처
- 30. HTML : 클라이언트 전자 메일 응용 프로그램을 열 수 없습니다.
어떤 RDBMS를 사용하고 있습니까? –
이 작업에 대한 결정을 내리기 전에 [이 기사 작성] (http://www.regular-expressions.info/email.html)을 읽으십시오. 구문 론적으로 유효한 이메일 주소가 아직 제공되지 않을 수도 있다는 점에서 고려해야 할 중요한 절충안이 있습니다. – cdhowie