我在 SQL Server 中有一个简单的表(我使用的是 2008 R2):
Sites ( SiteId, Name )
假设我有以下数据:
-----------------------------------------
- SiteId - Name -
-----------------------------------------
- 1 - Foo Bar Baz -
- 2 - Qux Tar -
- 3 - Contoso -
-----------------------------------------
我希望允许用户搜索“ baz foo
”并返回第 1 行。我希望 SQL Server 将输入字符串分解并仅返回列值与所有条件匹配的行。
从逻辑上讲,这将是这样的:
function Search(query) {
query = query.Split(" ");
sql = "SELECT ..."
foreach(term in query) {
sql += "WHERE Name LIKE " + term + " AND ";
}
executeSql( sql );
}
我知道 T-SQL 使处理数组变得非常困难,但肯定有一些内置的结构可以执行标记化/术语匹配吗?