如何匹配存储在SQL表中的模式

时间:2013-05-21 13:19:10

标签: sql sql-server

我正在尝试设置一个系统,我可以将包含数据占位符的短语存储在一个表中,该表可以由用户的输入字符串匹配。例如,today is [date]将存储在一列中,并可能与短语today is Tuesday正面匹配。解决方案需要快速。后端是MSSQL和.NET。有什么想法吗?

1 个答案:

答案 0 :(得分: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索引(如果存在),而是执行表扫描。