【发布时间】:2013-04-12 19:16:46
【问题描述】:
我想在查询中使用许多 LIKE 条件。我找不到实用的解决方案。我试过 CONTAINS 但它不起作用。
而不是使用这个
where EIO.DigiAddress like '%abc@abc.com%'
or EIO.DigiAddress like '%def@def.com%'
or EIO.DigiAddress like '%ghi@ghi.com%'
我想用这样的东西:
CONTAINS(EIO.DigiAddress,'%abc@abc.com%', '%def@def.com%', '%ghi@ghi.com%')
或
EIO.DigiAddress IN ('%abc@abc.com%', '%def@def.com%', '%ghi@ghi.com%')
【问题讨论】:
-
是像这样的特定字符串集,还是像电子邮件地址这样的通用格式?
-
你为什么使用 LIKE
'%abc@abc.com%'来定义你应该使用='abc@abc.com'的电子邮件地址 -
如果您打算检查有效的电子邮件地址。那么最后一个 % 就不需要了!
-
这看起来像XY problem。为什么需要很多 LIKE 条件?通常最好避免使用它们,因为它们非常昂贵。那么——您要解决的实际问题是什么?
-
当我查看下面的所有答案时,我认为多个 LIKE 仍然是最好和最干净的解决方案。抱歉,您在 SQL 中就是这样做的。