日期:2014-05-20  浏览次数:20936 次

请问如何实现批量模糊匹配呢?
例如我有一个字符串集合,里面放“appl”“ear”“bana”,那么如何才能将表中的“apple”、“pear”和“banana”都搜出来?因为这只是多个条件中的一个,能不用union么?
linq

------解决方案--------------------
var query=from x in db.usrs
          where new string[]{"apple","ear","bana"}.Contains(x.Name)
          select x;

转换成sql就是 
select * from users where name in ('apple','ear','bana')

------解决方案--------------------
var query=from x in db.users
          where new string[]{"apple","ear","bana"}.Any(y => x.Name.Contains(y))
          select x;

------解决方案--------------------

--模湖查询
select * 
from tb
where CHARINDEX('apple',COL)>0 or CHARINDEX('pear',COL)>0 or CHARINDEX('banana',COL)>0
或者
select * 
from tb
where COL like '%apple%' or COL like '%pear%' or COL like '%banana%'




------解决方案--------------------
引用:
Quote: 引用:

var query=from x in db.users
          where new string[]{"apple","ear","bana"}.Any(y => x.Name.Contains(y))
          select x;


any之前试过是会报错的,只能用Contains


怎么可能报错。
------解决方案--------------------
引用:
Quote: 引用:


--模湖查询
select * 
from tb
where CHARINDEX('apple',COL)>0 or CHARINDEX('pear',COL)>0 or CHARINDEX('banana',COL)>0
或者
select * 
from tb
where COL like '%apple%' or COL like '%pear%' or COL like '%banana%'




谢谢,第二句和二楼的一样,那么第一句转成linq用什么写法呢?字符串集合在linq语句里只能用Contains


请你看清楚我的程序。