技术标签: mysql语句中模糊查询
欢迎猿类加qq:2318645572,共同学习进步
实际例子:
ssm框架:service业务层->dao层->mappers.xml->junit/test测试
1:service业务层(package)
@Resource
private BooksDao bookDao;
public List> Service(String serachtitle, String serachtype) {
Map param=new HashMap();
param.put("title", serachtitle);
param.put("type", serachtype);
List> list=bookDao.serachBookDao(param);
return list;
};
2:dao层只需要写接口(略)
3:mappers:
select
nr_book_id as id,
nr_book_author as author,
nr_book_title as title,
nr_book_type as type,
nr_book_releasetime as releasetime,
nr_book_photo as img
from
book
where
nr_book_title like '%${title}%' and nr_book_type like '%${type}%'
其中关于条件,SQL提供了四种匹配模式:
1,% :表示任意0个或多个字符。可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示。
比如 SELECT * FROM book WHERE nr_book_title LIKE '%三%
将会把nr_book_title为“张三”,“张猫三”、“三脚猫”,“唐三藏”等等有“三”的记录全找出来。
mybatis-mysql:select * from book where nr_book_title like '%${title}%' and nr_book_type like '%${type}%' (这里用and,不用or)
另外,如果需要找出nr_book_title中既有“三”又有“猫”的记录,请使用and条件
SELECT * FROM book WHERE nr_book_title LIKE '%三%' AND nr_book_title LIKE '%猫%'
若使用 SELECT * FROM book WHERE nr_book_title LIKE '%三%猫%'
虽然能搜索出“三脚猫”,但不能搜索出符合条件的“张猫三”。
2,_ : 表示任意单个字符。匹配单个任意字符,它常用来限制表达式的字符长度语句:
比如 SELECT * FROM book WHERE nr_book_title LIKE '_三_'
只找出“唐三藏”这样nr_book_title为三个字且中间一个字是“三”的;
再比如 SELECT * FROM book WHERE nr_book_title LIKE '三__';
只找出“三脚猫”这样name为三个字且第一个字是“三”的;
3,[ ] :表示括号内所列字符中的一个(类似正则表达式)。指定一个字符、字符串或范围,要求所匹配对象为它们中的任一个。
比如 SELECT * FROM book WHERE nr_book_title LIKE '[张李王]三'
将找出“张三”、“李三”、“王三”(而不是“张李王三”);
如 [ ] 内有一系列字符(01234、abcde之类的)则可略写为“0-4”、“a-e”
SELECT * FROM book WHERE nr_book_title LIKE '老[1-9]'
将找出“老1”、“老2”、……、“老9”;
4,[^ ] :表示不在括号所列之内的单个字符。其取值和 [] 相同,但它要求所匹配对象为指定字符以外的任一个字符。
比如 SELECT * FROM book WHERE nr_book_title LIKE '[^张李王]三'
将找出不姓“张”、“李”、“王”的“赵三”、“孙三”等;
SELECT * FROM book WHERE nr_book_title LIKE '李[^1-4]';
将排除“李1”到“李4”,寻找“李5”、“李6”、……
/*后面的内容,包括通配符的查询还没有验证过,遇到问题可联系qq(2318645572)讨论*/
5,查询内容包含通配符时
由于通配符的缘故,导致我们查询特殊字符“%”、“_”、“[”的语句无法正常实现,而把特殊字符用“[ ]”括起便可正常查询。据此我们写出以下函数:
function sqlencode(str)
str=replace(str,"[","[[]") '此句一定要在最前
str=replace(str,"_","[_]")
str=replace(str,"%","[%]")
sqlencode=str
end function
access
在近日的写Web程序时用到了Access的模糊查询,在Acces里写代码怎么也找不到记录,后来才起来原来Acess和SqlServer的模糊查询是有特别的
条件:查找表A 的Name字段中包括 "B" 的记当
在Access里的代码:
1 Select * from a where name like '*b*'Sql Server查询分析器的代码
Select * from a where name like '%b%'这时你会发现Access里可以找到相关的记录,但把'*'必成'%'就找不到了,原因是Access的模糊查询是'?','*'
和Sql server不一样
以上只是在数据库中的代码,如果要写在程序里可就不能用.'*'了,还是要用'%'
程序:
strSql="select * from a where name like '%b%'"所以如果有朋友和我一样喜欢先在数据库中代码测试,那可就要注意了!!
----------------------------------------------------------------------------------------------------------
SQL模糊查询,使用like比较关键字,加上SQL里的通配符,请参考以下:
1、LIKE'Mc%' 将搜索以字母 Mc 开头的所有字符串(如 McBadden)。
2、LIKE'%inger' 将搜索以字母 inger 结尾的所有字符串(如 Ringer、Stringer)。
3、LIKE'%en%' 将搜索在任何位置包含字母 en 的所有字符串(如 Bennet、Green、McBadden)。
4、LIKE'_heryl' 将搜索以字母 heryl 结尾的所有六个字母的名称(如 Cheryl、Sheryl)。
5、LIKE'[CK]ars[eo]n' 将搜索下列字符串:Carsen、Karsen、Carson 和 Karson(如 Carson)。
6、LIKE'[M-Z]inger' 将搜索以字符串 inger 结尾、以从 M 到 Z 的任何单个字母开头的所有名称(如 Ringer)。
7、LIKE'M[^c]%' 将搜索以字母 M 开头,并且第二个字母不是 c 的所有名称(如MacFeather)。
-------------------------------------------------
下 面这句查询字符串是我以前写的,根据变量 zipcode_key 在邮政编码表 zipcode 中查询对应的数据,这句是判断变量 zipcode_key 为非数字时的查询语句,用 % 来匹配任意长度的字符串,从表中地址、市、省三列中查询包含关键字的所有数据项,并按省、市、地址排序。这个例子比较简单,只要你理解了方法就可以写出更 复杂的查询语句。
sql = "select * from zipcode where (address like'%" & zipcode_key & "%') or (city like'%" & zipcode_key & "%') or (province like'%" & zipcode_key & "%') order by province,city,address
存储过程中使用模糊查询的例子:SELECT * FROM Questions where QTitle like ' % [ '+ @KeyWord +' ] % ' and IsFinish = @IsFinsih
语句中成对的方括号 是书写格式的关键。
JavaScript生成有序GUID或者UUID,这时就想到了雪花算法。原理介绍:snowFlake算法最终生成ID的结果为一个64bit大小的整数,结构如下图:解释:1bit。二进制中最高位为1表示负数,但是我们最终生成的ID一般都是整数,所以这个最高位固定为0。41bit。用于记录时间戳(毫秒)41bit可以表示241-1个数字如果只用来表示正整数(计算机中正数包含0),可以表示的数值范围是0..._雪花算法 5位数字id
摘 要:光的衍射是日常生活中常见的一种光学现象。通过衍射实验,可以了解光强分布的规律,分析光学图像的空间频谱分布等。但由于光波的波长较短,衍射实验过程对诸多要素要求较高等原因,实际实验操作较难且易受环境干扰。而计算机仿真有良好的可控性、易观察、直观性好等特点,可以很好的解决实际实验中存在的一系列难题。本文通过MATLAB软件对衍射过程进行了建模,模拟了平面光栅的衍射。对比于实验室方法观察衍射现象,..._matlab进行多光栅衍射的仿真
幂等性浅谈GameKing2017.01.07 21:08* 字数 1155 阅读 467评论 0喜欢 1概述幂等性原本是数学上的概念,即使公式:f(x)=f(f(x)) 能够成立的数学性质。用在编程领域,则意为对同一个系统,使用同样的条件,一次请求和重复的多次请求对系统资源的影响是一致的。幂等性是分布式系统设计中十分重要的概念,具有这一性质_rocketmq乐观锁实现
使用字典dict()alist=['a','b','a','c','b','b',1,3]count_dict = dict()for i in alist:count_dict[i]=count_dict.get(i,0)+1 #dict.get(i,0)查询字典key=i的value,如果dict中没有i,则取i的value为0print(count_dict)2.使用defaultdict(..._读取counter值到list中
容器进阶操作_查询 docker负荷
我们接触到的很多数学公式涉及到偏导数,那么图像的偏导数怎么求呢?我们可以认为:图像就是一个复杂的曲面,我们要想得到曲面点的梯度,就需要对该点求偏导。求偏导的输入:附近点的灰度值求偏导的输出:一个数这里有人会问了,我们的梯度是一个有方向有大小的值呀。没错,我们这里求导的输出:两个数一个x方向的偏导,一个y方向的偏导,合成就是总的梯度方向和大小。我们需要用的信息是点附近的点,那么如何用呢..._图像偏导
对于用VS写C++,我们头文件使用#include<iostream.h>,会发现显示“Error:无法打开源文件iostream.h”。 只需去掉改为 但输出hello world时仍有问题,调试时会发现 有错误error C2065: “cout”:..._无法打开源文件ios.h
本站小福利 点我获取阿里云优惠券原文作者:github:CL0610/Java-concurrency免责声明:1.本文所转载文章均来自公开网络。2.如果出处标注有误或侵犯到原著作者权益,请联系删除。3.转载文章请注明原文链接和作者,否则产生的任何版权纠纷均与本站无关。1. ReentrantLock的介绍ReentrantLock重入锁,是实现Lock接口的一个类,也是在实际编程中..._reentrantlock vs lock
1.H5页面配置(1)引入微信JS SDK<script type="text/javascript" src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>(2)在js里配置接口参数wx.config({ debug : false,//这里是开启测试,如果设置为true,则打开...
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0,
大家好,我是烤鸭:1. 官方介绍官方文档:看的是 2.2.5.RELEASE版本的https://docs.spring.io/spring-cloud-gateway/docs/2.2.5.RELEASE/reference/html/看一下官方这段说明,gateway 使用的是 webflux 和 reactor,有一些同步的包(data,security 可能不支持)。还有就是需要netty作为服务器,传统的 servlet 模型和 war 包不支持。工作流程:.._springcloud gateway获取转发请求响应结果
端口映射 一、概念 什么是端口映射 在网络技术中,端口(Port)有好几种意思。集线器、交换机、路由器的端口指的是连接其他网络设备的接口,如RJ-45端口、Serial端口等。我们这里所说的端口,不是计算机硬件的I/O端口,而是软件形式上的概念。 服务器可以向外提供多种服务,比如,一台服务器可以同时是WEB服务器,也可以是FTP服务器,同时,它也可以是邮件服务器。为什么一台服务_dmz是什么