全字段多条件搜索(api接口)
程序员文章站
2022-06-10 16:10:02
近期在做项目时遇到了一个全表全字段多条件搜索的需求,在平时搜索最常见的就是 字段+like +‘% 条件%’这种模式,但遇到多条件多字段时,这种就不适用了。 表字段已知,条件未知,条件数量未知,这种情况我们不可能每多一个条件就加一个and。 解决办法: 先将用户输入的条件存入一个数组中,例如以空格隔 ......
近期在做项目时遇到了一个全表全字段多条件搜索的需求,在平时搜索最常见的就是 字段+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(查询条件无)
上一篇: 南瓜绿豆汤,美味而又健康,点菜走起!