如何从SQLServer数据库中获取以给定字符串开头的条目?我有一个在标记系统中使用大量单词的数据库。我已经为自动完成框创建了必要的代码,但我不确定如何以最有效的方式从数据库中获取匹配的条目。我知道LIKE命令,但对我来说它看起来更像是EQUAL命令。我只得到与我输入的完全相同的单词。我的计划是读取每一行,然后使用C#的string.StartsWith()和string.Contains()函数来查找可能适合的词,但我认为对于大型数据库来说,读取每一行然后过滤它们可能效率低下。有没有办法只读取SQLServer中以给定字符串开头或包含给定字符串的行?使用like时,您提供%符号作为通配符。如果你想要一个以Hello开头的字符串,你可以使用LIKE'Hello%'如果你想要字符串中任何地方的Hello,你可以使用LIKE'%Hello%'至于效率,使用Like并不是最优的。您应该查看全文搜索。我知道LIKE命令,但对我来说它看起来更像是EQUAL命令。我只得到与我输入的完全相同的单词。那是因为您没有使用通配符:WHEREcolumnLIKE'abc%'...将返回列值以“abc”开头的行。我要指出的是,这是唯一一个在使用通配符时可以在列...列上使用索引的版本。WHEREcolumnLIKE'%abc%'...将返回列值包含“abc”的行。通配符LIKE的左侧确保不能使用索引。SQLServer本身不支持正则表达式——您必须使用CLR函数来访问它。但它的性能与LIKE相当。全文搜索(FTS)是搜索文本的最佳方式。您可以在T-SQL中使用CONTAINS,但我很确定您必须对查询中涉及的表使用全文索引。包括全文搜索入门您还可以使用以下语句实现StartWithfunction:LEFT('Stringinwichyousearch',X)='abc'CHARINDEX('abc','Stringinwichyousearch')=1'Stringinwichyousearch')=1'Stringinwichyousearch'search'LIKE'abc%'使用最好的那个。以上就是C#学习教程:如何从SQLServer数据库中获取以给定字符串开头的条目?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
