【发布时间】:2018-04-10 08:26:25
【问题描述】:
我们如何使用like 运算符搜索表中的多个字段?
例如:
SELECT *
FROM EMP
WHERE ENAME LIKE ('%SCOTT%');
如果我想在单个查询中搜索多个列,如 '%SCOTT%' 或 '%ADAMS%' 等,而不使用多个 like 子句,该怎么办?
【问题讨论】:
-
如果你有一个
OR逻辑就不行,必须有多个LIKEs。我可以问一下,当查询显然是获取您想要的内容的正确方法时,您为什么不想使用多个LIKE子句? -
您将使用多个
LIKE子句并喜欢它。 T-SQL 不是一种非常灵活的语言。您为此设计的任何“解决方法”都可能具有更差的性能。如果您在搜索文本时需要更大的灵活性,请查看full-text search 是否可能有用。 -
感觉有一些额外的背景说明你为什么不想使用多个 LIKE 子句。您是否在寻找简洁的语法?还是您正在尝试解决更复杂的要求?
-
您可以使用
LIKE '%[SA][CD][OA][TM][TS]%',但这也将匹配SCAMS -
我不想使用多个 LIKE,因为它是动态的。我不知道会有多少搜索字符串。我的搜索参数类似于“Reddit、Twitter、MarketWatch 等......”
标签: sql-server sql-like