2013-05-21 35 views
0

我在嘗試建立一個系統,我可以將包含數據佔位符的短語存儲在表中可以匹配用戶的輸入字符串。例如,today is [date]將存儲在一列中,並可能與短語today is Tuesday正確匹配。解決方案需要很快。後端是MSSQL和.NET。有任何想法嗎?在SQL如何匹配存儲在SQL表中的模式

+7

我會建議在.NET中編寫一些代碼來完成它。 –

+0

您是否需要儲存'今天是[日期]'還是可以直接儲存'今天是',並有另一列指示'[日期]'部分? – Matthew

+0

這將用於詞組匹配。我想在文本中包含佔位符以表示該位置中預期的數據類型。 – bash721

回答

0

你的匹配選項,如下所示:

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指數(如果存在的話),這將轉而執行表掃描。