如何在varchar列中搜索单词?

时间:2013-09-05 10:08:18

标签: c# sql winforms

我有这张桌子:

materials table

我想通过特定方式搜索material_name:

例如:如果我有一个名为(我的新产品2014)的材料

如果用户按下(mnp 2),(med 0),(ywc 1),(my w uc),(my),(mn)...(其中,所述内插字符串的第一部分引用第一个单词材料名称和第二个等等)(当用户按空格时,该功能应该开始查看下一个单词)...材料应该是所选材料之一 和TextChange事件上调用的搜索功能。

在我的情况下哪个更好,在应用程序或sql中进行搜索功能? 为什么?

知道:材料表可能包含10000种材料

你可以帮帮我吗?

1 个答案:

答案 0 :(得分:2)

你可能最好创建和索引包含每种材料的第一个字母/数字,然后搜索它。

因此,您有一个包含用户将键入的值的表(mnp2,med0,ywc1等),然后您可以使用material_id查找实际的材料名称,然后从列表中选择具有匹配名称的材料

或者(也许更简单)只需在启动时从列表中在客户端的内存中创建此索引,然后在索引中搜索客户键入的内容并选择列表中的相关项。因此,使用材料的简短版本和列表中的位置创建列表的表示形式:

mnp2,0
med0,1
ywc1,2

等等

然后将用户按键匹配到此列表(使用StartsWith可能是最好的)并从列表中选择适当位置的元素