执行数据库查询时,有完整查询和模糊查询之分。

一般模糊语句格式如下:

SELECT 字段 FROM 表 WHERE 某字段 LIKE 条件

其中关于条件,SQL提供了四种匹配模式:

1、% :表示任意0个或多个字符。可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示。

例如 SELECT * FROM [user] WHERE u_name LIKE '%三%'
           将会把u_name为“张三”,“张猫三”、“三脚猫”,“唐三藏”等等有“三”的记录全找出来。

再例如需要找出u_name中既有“三”又有“猫”的记录,请使用and条件
           SELECT * FROM [user] WHERE u_name LIKE '%三%' AND u_name LIKE '%猫%'

再例如 SELECT * FROM [user] WHERE u_name LIKE '%三%猫%'
           虽然能搜索出“三脚猫”,但不能搜索出符合条件的“张猫三”。

    备注:%三:表示左匹配。三%:表示右匹配。%三%:表示模糊查询。

2、_ : 表示任意单个字符。匹配单个任意字符,它常用来限制表达式的字符长度语句:

例如 SELECT * FROM [user] WHERE u_name LIKE '_三_'
          只找出“唐三藏”,这样u_name为三个字且中间一个字是“三”的;

再例如 SELECT * FROM [user] WHERE u_name LIKE '三__'
          只找出“三脚猫”这样name为三个字且第一个字是“三”的;

3、[ ] :表示括号内所列字符中的一个(类似正则表达式)。指定一个字符、字符串或范围,要求所匹配对象为它们中的任一个。

例如 SELECT * FROM [user] WHERE u_name LIKE '[张李王]三'
          将找出“张三”、“李三”、“王三”(而不是“张李王三”);

再例如 [ ] 内有一系列字符(01234、abcde之类的)则可略写为“0-4”、“a-e”
          SELECT * FROM [user] WHERE u_name LIKE '老[1-9]'
          将找出“老1”、“老2”、……、“老9”;

如果要找“-”字符请将其放在首位:'张三[-1-9]';

Oracle 10g以上的版本用法为:

select * from flow_user where regexp_like(username, '[张王李]飞')

4、[^ ] :表示不在括号所列之内的单个字符。其取值和 [] 相同,但它要求所匹配对象为指定字符以外的任一个字符。

例如 SELECT * FROM [user] WHERE u_name LIKE '[^张李王]三'
         将找出不姓“张”、“李”、“王”的“赵三”、“孙三”等;
         再例如 SELECT * FROM [user] WHERE u_name LIKE '老[^1-4]'
         将排除“老1”到“老4”,寻找“老5”、“老6”、……、“老9”。

注:oracle like 不支持正则,你可以使用支持like的正则regexp_like

5、查询内容包含通配符时

* 表示查找的是所有信息,例如select * from tbl_user

由于通配符的缘故,导致我们查询特殊字符“%”、“_”、“[”的语句无法正常实现,而把特殊字符用“[ ]”括起便可正常查询。据此我们写出以下函数:

function sqlencode(str)
str=replace(str,"[","[[]") '此句一定要在最前
str=replace(str,"_","[_]")
str=replace(str,"%","[%]")
sqlencode=str
end function

备注
           在查询前将待查字符串先经该函数处理即可,并且在网页上连接数据库用到这类的查询语句时侯要注意:
           例如 Select * FROM user Where name LIKE '老[^1-4]'

上面 《'》老[^1-4]《'》是要有单引号的!

【原文】http://www.cnblogs.com/LoveSuk/archive/2017/04/06/6672768.html

SQL模糊查询条件的四种匹配模式的更多相关文章

  1. SQL 模糊查询条件的四种匹配模式

    转: 执行数据库查询时,有完整查询和模糊查询之分. 一般模糊语句格式如下: SELECT 字段 FROM 表 WHERE 某字段 LIKE 条件; 其中,关于条件,SQL提供了四种匹配模式: 1.%: ...

  2. SQL中常用模糊查询的四种匹配模式&&正则表达式

    执行数据库查询时,有完整查询和模糊查询之分.一般模糊语句如下:SELECT 字段 FROM 表 WHERE 某字段 Like 条件 其中关于条件,SQL提供了四种匹配模式:1.%:表示任意0个或多个字 ...

  3. SQL模糊查询的四种匹配模式

    执行数据库查询时,有完整查询和模糊查询之分,一般模糊语句如下: SELECT 字段 FROM 表 WHERE 某字段 Like 条件 一.四种匹配模式 关于条件,SQL提供了四种匹配模式: 1.% 表 ...

  4. sql的四种匹配模式

    1. % 表示任意0个或多个字符.如下语句:Select * FROM user Where name LIKE '%三%'; 将会把name为“张三”,“三脚猫”,“唐三藏”等等有“三”的全找出来. ...

  5. sql模糊查询

    SQL 模糊查询 在进行数据库查询时,有完整查询和模糊查询之分. 一般模糊查询语句如下: SELECT 字段 FROM 表 WHERE 某字段 Like 条件 其中关于条件,SQL提供了四种匹配模式: ...

  6. 有关SQL模糊查询

    执行 数据库查询时,有完整查询和模糊查询之分. 一般模糊语句如下: SELECT 字段 FROM 表 WHERE 某字段 Like 条件 其中关于条件,SQL提供了四种匹配模式: 1,%:表示任意0个 ...

  7. SQL 模糊查询

    在进行数据库查询时,有完整查询和模糊查询之分.一般模糊查询语句如下: SELECT 字段 FROM 表 WHERE 某字段 Like 条件 其中关于条件,SQL提供了四种匹配模式:1,%:表示任意0个 ...

  8. SQL 模糊查询(like)

    在进行数据库查询时,有完整查询和模糊查询之分. SQL模糊查询,使用like比较字,加上SQL里的通配符,请参考以下: 1.LIKE'Mc%' 将搜索以字母 Mc 开头的所有字符串(如 McBadde ...

  9. 【转】SQL模糊查询

    在进行数据库查询时,有完整查询和模糊查询之分. 一般模糊查询语句如下: SELECT 字段 FROM 表 WHERE 某字段 Like 条件 其中关于条件,SQL提供了四种匹配模式: 1,% :表示任 ...

随机推荐

  1. C#计算表达式(仿计算器功能)

    一.用MSScriptControl在C#中执行JavaScript代码javascript中有个eval方法用过的人都知道他的方便和强大之处.在C#中,我们也可以通过Com组件来执行一段javasc ...

  2. Unity3d场景漫游---iTween实现

    接触U3D以来,我做过的场景漫游实现方式一般有以下几种: Unity3d中的Animation组件,通过设置摄像机的关键点实现场景漫游 第一人称或第三人称控制器 编写摄像机控制脚本 iTween iT ...

  3. Oracle 数据库启用归档

    一.关闭数据库 二.启动数据库到mount状态 三.启用或停止归档模式 启用 停用 四.开启数据库并查看归档模式 参考文档:http://blog.csdn.net/feifei_86/article ...

  4. vim编辑器的常见使用功能

    Vim是一个类似于vi的著名的功能强大.高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性. 掌握简单的vim命令可以大大提高我们编辑文档效率,在装有vim编辑器的linux系统终端输入vim ...

  5. 【JS】JavaScript中的参数传递

    ECMAScript中所有函数的参数都是按值传递的,简单讲就是函数外部的值 复制给函数内部的参数,就和把值从一个变量复制到另一个变量一样.切记访问变量有按值访问和按引用访问,而参数只能按值传递. 在向 ...

  6. Java 数值类型以及计算

    前段时候写了一个对外提供的接口,其中有一个数值校验的计算.在测试的过程中发现5.6-1.6 != 4,在反复的测试过程中发现double类型的数值为有精度丢失的现象,看来还是基础知识不牢固,所以就在网 ...

  7. wemall app商城源码中ScrollView中嵌套ListView主要代码

    很多时间我们在scorllview中嵌入listview的时候,都只能看到listview显示一行数据,而我们的要求是显示多行,即我们数据的行数, 当ListView的高度设定一定的值时,ListVi ...

  8. 单源最短路径问题之dijkstra算法

    欢迎探讨,如有错误敬请指正 如需转载,请注明出处 http://www.cnblogs.com/nullzx/ 1. 算法的原理 以源点开始,以源点相连的顶点作为向外延伸的顶点,在所有这些向外延伸的顶 ...

  9. 1257: [CQOI2007]余数之和sum

    1257: [CQOI2007]余数之和sum Time Limit: 5 Sec  Memory Limit: 162 MBSubmit: 2001  Solved: 928[Submit][Sta ...

  10. Mysql 保留最新的10条数据

    Mysql每天执行计划,保留最新的10条数据,其余的删除 1.Mysql 保留最新的10条数据 sql语句: DELETE tb FROM tbname AS tb,( SELECT id FROM ...