一.什么是模糊查询
介绍
(1)当想查询学生姓名中包含字符a,就需要使用到模糊查询,模糊查询的话使用关键字是like(像)
(2)通配符
:任意一个字符
张_:张三,张三丰
张__:张三,张三丰
%:表示0或者多个字符
张%
通配符:_
查询名字由五个字母构成的 学生记录
Select *from stu where sname like ‘_____’;
查询名字由五个字母构成的,并且第五个字符是i 学生记录
Select *from stu where sname like ‘____i’;
通配符: %
查询名字以‘z’开头的学生记录
Select *from stu where sname like ‘z%’;
查询名字中第二个字符是i的学生记录
Select *from stu where sname like ‘_i’;
查询名字中包含a的学生记录
select *from stu where sname like ‘%a%’;
1.1模糊查询是目前计算机查找信息用得最多的一种搜索工具,它主要用于与“数据”相关的栏目,通过它可快速查找到想要的信息,通常是用关键字进行模糊查找,所谓关键字就是登记信息中所包含的字符,如:到百度中要搜某方面的知识 当摸索目标不是很明确的时候,比如你想要搜索某个名人,可能一下子突然忘了他叫什么名字,只记得他的姓氏,.就可进行模糊搜索,这时候只是对姓氏进行匹配,而不查找全称,当然结果是你可能获得一大批你不想要的信息,不过可以多加些搜索条件也可以达到搜索目的.这就是根据sql语句想到的,还有就是到淘宝中想买一件心仪的衣服,然后你只要把你想要的衣服类型通过在淘宝中输入关键字就会筛选出一大批类似的衣服供你挑选,你就可以在这些衣服中慢慢找出自己喜欢的衣服了。这也就是模糊查询的好处了。
接下来就来做一下模糊查询的功能:
先到要查询的具体位置给它设置一个id。
<input type="button" id="Aa">
<input type="button" id="Aa">
然后到jsp中获取到这个按钮,给它一个点击事件,然后申明几个变量名,使它的名字等于要进行筛选位置的id名,注:这里的“brave”,”text”是两个input标签中的id名,然后把它拼接起来接收要赋的值。再去查询这些传输进来的值。
$("#Aa").click(function () {
var bra = $("#brave").val();
var texs = $("#text").val();
var str = "bra=" + bra + "&texs=" + texs;
tbinspiration.search(str);
})
然后到控制器中写查询的方法,再把这两个变量名传参到这个方法中,然后再进行判断,先判断传入进来的数据是否为空,再进行如果左边input标签中的值等于某种值的话,右边input标签就转化成某种类型的字符串。这样就利于查找出要查找的数据。至于查询的方法我这里就不写了,下面是一些判断的代码。
if (!String.IsNullOrEmpty(bra))
{
if (!String.IsNullOrEmpty(texs))
{
if (bra == "CommodityStyleNumber")
{
list = list.Where(m => (m.CommodityStyleNumber).ToUpper().Contains(texs.ToUpper())).ToList();
bsgrid.success = true;
}
if (bra == "CommodityName")
{
list = list.Where(m => (m.CommodityName).ToLower().Contains(texs.ToLower())).ToList();
bsgrid.success = true;
}
if (bra == "Amount")
{
list = list.Where(m => m.Amount >= Convert.ToInt16(texs)).ToList();
bsgrid.success = true;
}
if (bra == "TagPrice")
{
list = list.Where(m => m.TagPrice >= Convert.ToInt16(texs)).ToList();
bsgrid.success = true;
}
具体代码实现
前端
<div style="float: right"><h3 align="center" class="form-inline">当前用户:${user}欢迎你!</h3></div>
<div align="center" style="float: left">
<form class="form-inline" action="bookListByType" method="post">
<div class="form-group">
<label>图书分类</label>
<select name="book_type" class="form-control">
<option selected>请选择</option>
<option>小说</option>
<option>文学</option>
<option>传记</option>