近期在做项目时遇到了一个全表全字段多条件搜索的需求,在平时搜索最常见的就是 字段+like +‘% 条件%’这种模式,但遇到多条件多字段时,这种就不适用了。 表字段已知,条件未知,条件数量未知,这种情况我们不可能每多一个条件就加一个and。
解决办法:
先将用户输入的条件存入一个数组中,例如以空格隔开的条件:
string[] strarr = searchtext.split(" ");
进行循环遍历数组中的条件进行sql拼接
for(int i =0;i<strarr.length;i++)
{
sql += "concat(d1,d,d3,d4,d5,d6,d7,d8,d9,d10,data) like '%"+strarr[i] + "%'and";
}
然后将拼接好的sql放入where条件下就可以了。
这个方法是在不考虑查询效率时所使用的。
测试:数据约两万条,二十五个字段,45kb左右,大约要17s(查询条件无)
如对本文有疑问, 点击进行留言回复!!
使用Visual Studio2019创建C#项目(窗体应用程序、控制台应用程序、Web应用程序)
C#实现获取本地内网(局域网)和外网(公网)IP地址的方法分析
网友评论