【发布时间】:2012-07-11 19:57:48
【问题描述】:
我的逻辑是错误的。我一生的故事。无论如何,我有以下查询,我认为在一列中的多个字符串检查期间该查询失败。我希望能够使用 AND 运算符在一列中检查多个字符串。
例如,我想屏蔽此电子邮件“dick1sucker@gmail.com”,但不想屏蔽“dickeynewman@gmail.com”。使用下面的AND 运算符,如果发生任何一个字符串检查,就好像一条记录被抑制了,即使我已经用括号括住了语句。
/****** Script for CHECK DOMAIN SUFFIX AND VULGARITIES ******/
SELECT EMAIL
INTO Matched_Table
FROM Matched_Table_TEMP
WHERE (RIGHT(RTRIM(EMAIL),4) IN ('.COM','.NET','.MIL','.GOV','.ORG','.BIZ') OR RIGHT(RTRIM(EMAIL),3) = '.US')
AND (CHARINDEX('DICK',EMAIL) = 0 and CHARINDEX('SUCKER',EMAIL) = 0)
AND (CHARINDEX('DICK',EMAIL) = 0 and CHARINDEX('HEAD',EMAIL) = 0)
AND (CHARINDEX('DICK',EMAIL) = 0 and CHARINDEX('CHOKE',EMAIL) = 0)
AND (CHARINDEX('DICK',EMAIL) = 0 and CHARINDEX('FACE',EMAIL) = 0)
AND (CHARINDEX('DICK',EMAIL) = 0 and CHARINDEX('NOSE',EMAIL) = 0)
AND (CHARINDEX('COCK',EMAIL) = 0 and CHARINDEX('SUCKER',EMAIL) = 0)
我将在列表中添加更多的漏洞,但显然需要先纠正逻辑。
另一个例子,现在上面禁止了以下电子邮件,但我不希望它们被禁止。
METALHEAD038@HOTMAIL.COM
BAND2FACEDKITTY@AOL.COM
ANGELFACE30_98@YAHOO.COM
TERESADICKSON921@HOTMAIL.COM
ROARINGARTICHOKE@TOMGREEN.COM
CERNOSEK@YAHOO.COM
【问题讨论】:
-
您是否使用不区分大小写的排序规则?
-
邓肯,对不起,我应该注意到这一点。我比较的所有数据都是大写的。
标签: sql sql-server-2008