mysql语句中模糊查询_关于sql、mysql语句的模糊查询分类与详解,包括基本用法和mapper.xml文件里插入写法..._weixin_39645165的博客-程序员宅基地

技术标签: 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

语句中成对的方括号 是书写格式的关键。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_39645165/article/details/113152128

智能推荐

id长度 雪花算法_ID生成算法(一)——雪花算法-程序员宅基地

JavaScript生成有序GUID或者UUID,这时就想到了雪花算法。原理介绍:snowFlake算法最终生成ID的结果为一个64bit大小的整数,结构如下图:解释:1bit。二进制中最高位为1表示负数,但是我们最终生成的ID一般都是整数,所以这个最高位固定为0。41bit。用于记录时间戳(毫秒)41bit可以表示241-1个数字如果只用来表示正整数(计算机中正数包含0),可以表示的数值范围是0..._雪花算法 5位数字id

matlab进行多光栅衍射仿真,平面光栅衍射的MATLAB仿真_HISAHARA的博客-程序员宅基地

摘 要:光的衍射是日常生活中常见的一种光学现象。通过衍射实验,可以了解光强分布的规律,分析光学图像的空间频谱分布等。但由于光波的波长较短,衍射实验过程对诸多要素要求较高等原因,实际实验操作较难且易受环境干扰。而计算机仿真有良好的可控性、易观察、直观性好等特点,可以很好的解决实际实验中存在的一系列难题。本文通过MATLAB软件对衍射过程进行了建模,模拟了平面光栅的衍射。对比于实验室方法观察衍射现象,..._matlab进行多光栅衍射的仿真

幂等性,RocketMQ解决消息顺序和重复,Mysql与Java中的乐观锁悲观锁,_rocketmq乐观锁实现-程序员宅基地

幂等性浅谈GameKing2017.01.07 21:08* 字数 1155 阅读 467评论 0喜欢 1概述幂等性原本是数学上的概念,即使公式:f(x)=f(f(x)) 能够成立的数学性质。用在编程领域,则意为对同一个系统,使用同样的条件,一次请求和重复的多次请求对系统资源的影响是一致的。幂等性是分布式系统设计中十分重要的概念,具有这一性质_rocketmq乐观锁实现

python counter转换为列表_python中统计计数的几种方法和Counter的介绍-程序员宅基地

使用字典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中

图像偏导数(比较有用的知识);光流法(看了就懂的程序分析讲解)-程序员宅基地

我们接触到的很多数学公式涉及到偏导数,那么图像的偏导数怎么求呢?我们可以认为:图像就是一个复杂的曲面,我们要想得到曲面点的梯度,就需要对该点求偏导。求偏导的输入:附近点的灰度值求偏导的输出:一个数这里有人会问了,我们的梯度是一个有方向有大小的值呀。没错,我们这里求导的输出:两个数一个x方向的偏导,一个y方向的偏导,合成就是总的梯度方向和大小。我们需要用的信息是点附近的点,那么如何用呢..._图像偏导

随便推点

Error:无法打开源文件iostream.h; error C2065: “cout”: 未声明的标识符_无法打开源文件ios.h-程序员宅基地

对于用VS写C++,我们头文件使用#include<iostream.h>,会发现显示“Error:无法打开源文件iostream.h”。 只需去掉改为 但输出hello world时仍有问题,调试时会发现 有错误error C2065: “cout”:..._无法打开源文件ios.h

Java并发系列(10)彻底理解ReentrantLock_reentrantlock vs lock-程序员宅基地

本站小福利 点我获取阿里云优惠券原文作者: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,则打开...

H5 tab切换页面-程序员宅基地

&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;meta name="viewport" content="width=device-width, initial-scale=1.0,

springcloud gateway 源码解析、请求响应流程、第三方响应结果在 gateway 的经过_springcloud gateway获取转发请求响应结果-程序员宅基地

大家好,我是烤鸭: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获取转发请求响应结果

端口映射和DMZ的区别_dmz是什么-程序员宅基地

端口映射 一、概念 什么是端口映射 在网络技术中,端口(Port)有好几种意思。集线器、交换机、路由器的端口指的是连接其他网络设备的接口,如RJ-45端口、Serial端口等。我们这里所说的端口,不是计算机硬件的I/O端口,而是软件形式上的概念。 服务器可以向外提供多种服务,比如,一台服务器可以同时是WEB服务器,也可以是FTP服务器,同时,它也可以是邮件服务器。为什么一台服务_dmz是什么

推荐文章

热门文章

相关标签