我正在尝试设置一个系统,在该系统中,我可以将包含数据占位符的短语存储在一个可以由用户输入字符串匹配的表中。例如,today is [date]
将存储在列中并可能与短语正匹配today is Tuesday
。解决方案需要快速。后端是 MSSQL 和 .NET。有任何想法吗?
问问题
89 次
1 回答
0
您在 SQL 中的匹配选项如下所示:
WHERE ColumnName = 'today is Tuesday'
或者
WHERE ColumnName LIKE 'today is %'
或者
WHERE ColumnName IN ('today is Monday', 'today is Tuesday', 'today is Wednesday')
其中任何一个都会很快。因此,您可以使用 .NET 代码构建一个包含所有潜在占位符替换的 IN 列表。
请注意以下查询:
WHERE ColumnName LIKE '% is today'
这会更慢,因为前导通配符使 SQL Server 无法使用 ColumnName 索引(如果存在),而是执行表扫描。
于 2013-05-21T15:51:55.620 回答