如何用C#函数实现,SQL的like模糊匹配?

huige0628 2012-11-19 10:22:23
l.Title LIKE @keywords+' %'
OR l.Title LIKE '% '+@keywords
OR l.Title LIKE '% '+@keywords+' %'

OR l.Title LIKE '% '+@keywords+',%'
OR l.Title LIKE '% '+@keywords+'-%'
OR l.Title LIKE '% '+@keywords+'+%'
OR l.Title LIKE '% '+@keywords+'/%'
OR l.Title LIKE '% '+@keywords+'_%'

OR l.Title LIKE '%,'+@keywords+' %'
OR l.Title LIKE '%-'+@keywords+' %'
OR l.Title LIKE '%+'+@keywords+' %'
OR l.Title LIKE '%/'+@keywords+' %'
OR l.Title LIKE '%_'+@keywords+' %'

OR l.Title LIKE @keywords+',%'
OR l.Title LIKE '%,'+@keywords
OR l.Title LIKE '%,'+@keywords+',%'

OR l.Title LIKE @keywords+'-%'
OR l.Title LIKE '%-'+@keywords
OR l.Title LIKE '%-'+@keywords+'-%'

OR l.Title LIKE @keywords+'+%'
OR l.Title LIKE '%+'+@keywords
OR l.Title LIKE '%+'+@keywords+'+%'

OR l.Title LIKE @keywords+'/%'
OR l.Title LIKE '%/'+@keywords
OR l.Title LIKE '%/'+@keywords+'/%'

OR l.Title LIKE @keywords+'_%'
OR l.Title LIKE '%_'+@keywords
OR l.Title LIKE '%_'+@keywords+'_%'

说明:l.Title是一张表的某个字段,而@keywords是要匹配的关键字。请问以上的匹配如何使用C#的方式实现?
...全文
586 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
晕死! 还是用正则吧
ZpSoft_wlp 2012-11-23
  • 打赏
  • 举报
回复
全文检索 分词建立index 理解之后可考虑开源库 比如lucene.net
  • 打赏
  • 举报
回复
先搞懂大方向,有点正常的经验和感觉,再讨论低级的技术问题吧。
  • 打赏
  • 举报
回复
晕死! 了解什么叫做“全文检索”吧。写这种查询,(我遇到过不止三个)有些公司自欺欺人地以为这个叫做“全文检索”,真是悲哀。 这种搜索.......
闪耀的瞬间 2012-11-22
  • 打赏
  • 举报
回复
数据量大在那种语言里都有影响吧。。
huige0628 2012-11-19
  • 打赏
  • 举报
回复
引用 6 楼 hywyjw 的回复:
SQL语句直接放到C#里调用数据就行了, 不用搞什么变化呢
数据量大的话,那会影响查询的效率吧
hywyjw 2012-11-19
  • 打赏
  • 举报
回复
SQL语句直接放到C#里调用数据就行了, 不用搞什么变化呢
huige0628 2012-11-19
  • 打赏
  • 举报
回复
引用 4 楼 caozhy 的回复:
string[] keywords = { "key1", "key2", "key3" }; string source = "abc key2 def"; bool isMatch = keywords.Any(x => source.Contains(x)); if (isMatch) { ... }
因为刚开始初学,谢谢前辈的指导
threenewbee 2012-11-19
  • 打赏
  • 举报
回复
string[] keywords = { "key1", "key2", "key3" }; string source = "abc key2 def"; bool isMatch = keywords.Any(x => source.Contains(x)); if (isMatch) { ... }
Teng_s2000 2012-11-19
  • 打赏
  • 举报
回复
1楼不是给你说了2种方法吗,正则不行吗
huige0628 2012-11-19
  • 打赏
  • 举报
回复
引用 1 楼 caozhy 的回复:
(1)使用Contains函数 (2)使用正则表达式
这么多的匹配,contains能不能匹配完呢?
threenewbee 2012-11-19
  • 打赏
  • 举报
回复
(1)使用Contains函数 (2)使用正则表达式

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧