Сценарий Sql для нахождения недопустимых адресов электронной почты

Импорт данных был сделан от базы данных доступа и на поле адреса электронной почты не было никакой проверки. Делает у любого есть sql сценарий, который может возвратить список недопустимых адресов электронной почты (отсутствующий, и т.д.).

60
задан BDL 23 October 2019 в 08:29
поделиться

2 ответа

SELECT * FROM people WHERE email NOT LIKE '%_@__%.__%'

Anything more complex will likely return false negatives and run slower.

Validating e-mail addresses in code is virtually impossible.

EDIT: Related questions

148
ответ дан 24 November 2019 в 17:32
поделиться

Here is a quick and easy solution:

CREATE FUNCTION dbo.vaValidEmail(@EMAIL varchar(100))

RETURNS bit as
BEGIN     
  DECLARE @bitRetVal as Bit
  IF (@EMAIL <> '' AND @EMAIL NOT LIKE '_%@__%.__%')
     SET @bitRetVal = 0  -- Invalid
  ELSE 
    SET @bitRetVal = 1   -- Valid
  RETURN @bitRetVal
END 

Then you can find all rows by using the function:

SELECT * FROM users WHERE dbo.vaValidEmail(email) = 0

If you are not happy with creating a function in your database, you can use the LIKE-clause directly in your query:

SELECT * FROM users WHERE email NOT LIKE '_%@__%.__%'

Source

19
ответ дан 24 November 2019 в 17:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: