有没有一种方法可以搜索一列中具有多个变体的匹配字符串?

时间:2019-09-09 15:03:02

标签: sql sql-server

我有一个表,其中包含列“ CompanyName”。 我想获取所有带有特定字符串的行。

+----+----------------------+-------------------+---------+---------+
| Id | CompanyName          | Street            | City    | Country |
+----+----------------------+-------------------+---------+---------+
| 1  | Microsoft Corporation| One Microsoft Way | Redmond | USA     |
+----+----------------------+-------------------+---------+---------+

是否可以搜索“ Microsoft Corporation”或“ Corporation Microsoft”并返回ID为'1'的行?

我的问题是,如果我的客户在我的Web应用程序中搜索“ Microsoft Corporation”,他将不会获得第1行的返回以及以下代码的查找:

SELECT * FROM Customers WHERE CompanyName LIKE %searchPattern%

WebApp使用C#编码。

SQL版本:SQL Server 2017(14.0)

提前谢谢

2 个答案:

答案 0 :(得分:0)

这对您有用吗?

select *
from t
where CompanyName like '%Microsoft%'

答案 1 :(得分:0)

您需要在实例中安装全文,然后可以执行以下操作:

SELECT * FROM COMPANY WHERE CONTAINS(CompanyName,'Corporation Microsoft')

请按照本指南设置全文:https://www.sqlshack.com/sql-filestream-and-sql-server-full-text-search/

详细了解全文搜索:https://docs.microsoft.com/fr-fr/sql/relational-databases/search/full-text-search?view=sql-server-2017

和包含功能:https://docs.microsoft.com/fr-fr/sql/t-sql/queries/contains-transact-sql?view=sql-server-2017