http://www.lmwlove.com/ac/ID878

有很多朋友写了几年的like搜索,可能对like后面通配符的用法都不了解,甚至于%的作用是什么都不清楚。在这篇文章中,我们就一起来学习一下like查询中通配符的用法吧。

我们写的最多的查询语句可能是这样的

select * from computes where 字段 name '%sql技术%'

那么,上面sql语句中的%是起什么作用呢?

%,sql中查询通配符,它匹配包含零个或多个字符的任意字符串
比如上面sql的意思就是查询出name中包含'sql技术'的所有记录。 
因为%匹配零个或者多个字符。我们可以只使用一个%来查询只是开始或结尾处包含'sql技术'的所有记录,分别如下:
1,查询所有name字段以sql技术开头的记录。

select * from computes where 字段 name 'sql技术%'

2,查询所有name字段以sql技术结尾的记录。

select * from computes where 字段 name '%sql技术'

除了%外,可能我们有忽略掉sql中另一个通配符了,它就是下划线'_'。

_,匹配sql中任何单个字符
比如下面的sql

select * from hr_staff where name like '_bcd'

那么它将返回所有name长度为4,且以'bcd'结尾的所有记录,比如abcd,ebcd都会满足查询条件,但aebcd就不满足了,因为_是匹配单个字符。

有了匹配单个与多个字符的方法了,那么有没有匹配指定范围内字符的写法呢?这个当然也是有的。就是使用范围符中括号'[]'了。

[],指定[]内标识范围或集合中的任何单个字符
比如,看下面的sql的写法:
1,返回name字段以a或者b或者c开头的所有记录

select * from hr_staff where name like '[a,b,c]%'

2,返回name字段以a或者b或者c结尾的所有记录

select * from hr_staff where name like '%[a,b,c]'

[]中集合还有一种写法,就是以-来表示从某字符开始,到某字符结束。比如下面的sql语句

select * from hr_staff where name like '[a-c]%'

它表示查询hr_staff表中name字段所有从a开始,到c结束开头的记录,它的作用与select * from hr_staff where name like '[a,b,c]%'是一样的。还有[0-9]表示匹配从0到9中的任意数字。

有了在范围内的写法,对应就会有不在范围内的写法:

[^],表示不属于[]指定范围或集合的任何单个字符
比如:[^0-9]表示不匹配任何数字。
示例:我们要查询表table1的col1列全为数字的记录,sql语句可以这样写:

select * from table1 where col1 not like '%[^0-9]%'

好了,看完这篇文章后,有没有觉的对sql的查询又有了新的了解呢,呵呵,欢迎大家一起讨论。

sql搜索like通配符的用法详解的更多相关文章

  1. SQL之case when then用法详解

    case具有两种格式.简单case函数和case搜索函数. <span style="font-size:14px;">--简单case函数 case sex when ...

  2. SQL Server UPDATE语句的用法详解

    SQL Server UPDATE语句用于更新数据,下面就为您详细介绍SQL Server UPDATE语句语法方面的知识,希望可以让您对SQL Server UPDATE语句有更多的了解. 现实应用 ...

  3. SQL中CONVERT()函数用法详解

    SQL中CONVERT函数格式: CONVERT(data_type,expression[,style]) 参数说明: expression 是任何有效的 Microsoft® SQL Server ...

  4. Elasticsearch SQL用法详解

    Elasticsearch SQL用法详解  mp.weixin.qq.com 本文详细介绍了不同版本中Elasticsearch SQL的使用方法,总结了实际中常用的方法和操作,并给出了几个具体例子 ...

  5. mysql中event的用法详解

    一.基本概念mysql5.1版本开始引进event概念.event既“时间触发器”,与triggers的事件触发不同,event类似与linux crontab计划任务,用于时间触发.通过单独或调用存 ...

  6. oracle正则表达式regexp_like的用法详解

    oracle正则表达式regexp_like的用法详解 /*ORACLE中的支持正则表达式的函数主要有下面四个:1,REGEXP_LIKE :与LIKE的功能相似2,REGEXP_INSTR :与IN ...

  7. Word中类似正则匹配的查找替换通配符的使用详解

    一.Word查找栏代码&通配符一览表 序号 清除使用通配符复选框 勾选使用通配符复选框 特殊字符 代码 特殊字符 代码or通配符 1 任意单个字符 ^? 任意单个字符 ? 2 任意数字 ^# ...

  8. grep用法详解:grep与正则表达式【转】

    转自:http://blog.csdn.net/hellochenlian/article/details/34088179 grep用法详解:grep与正则表达式 首先要记住的是: 正则表达式与通配 ...

  9. linux管道命令grep命令参数及用法详解---附使用案例|grep

    功能说明:查找文件里符合条件的字符串. 语 法:grep [-abcEFGhHilLnqrsvVwxy][-A<显示列数>][-B<显示列数>][-C<显示列数>] ...

随机推荐

  1. Best Practices for Performance_1、2 memory、Tips 性能和小的优化点、 onTrimMemory

    http://developer.android.com/training/articles/memory.htmlhttp://developer.android.com/tools/debuggi ...

  2. Automation Test in Maya Plugin Development

    现状和问题- 开发插件的功能A的时候随手建立场景, 测试插件的功能A. 测试通过后,测试场景就被丢掉.- 发现插件的功能A有bug时, 修改代码, 然后随手建立场景, 测试bug. 测试通过后,测试场 ...

  3. linux下tomcat的安装和配置

    安装前要求: 1. 安装java环境. 2. 配置java环境变量 开始了: 1. 在官网下载tomcat:http://tomcat.apache.org/ 2. linux环境选择.zip或者.t ...

  4. Android Event

    2016-10-11 http://p.codekk.com/detail/Android/wcy10586/androidEvent https://my.oschina.net/u/191330/ ...

  5. [Mongdb] 关于Replica Set复制集奇数成员限制的解释--待完善

    一.缘由: http://blog.itpub.net/29254281/viewspace-1176821/ http://blog.chinaunix.net/uid-20726500-id-54 ...

  6. thinkphp关闭调试模式(APP_DEBUG => false),导致程序出错

    thinkphp关闭调试模式(APP_DEBUG => false),导致程序出错,开启调试模式,不报错,怎么解决? 查看Logs日志记录: [ --29T09::+: ] 113.108.11 ...

  7. mybatis处理一对多的查询

    //查询出某个班级对应的所有老师和学生 1.使用嵌套结果 <select id="findClasses3" parameterType="int" re ...

  8. [ActionScript 3.0] AS3.0和AS2.0的相互通信

    AS3和AS2之间的通信,最好的方式可能就是LocalConnection了. AS2向AS3发送数据,即AS2调用AS3的函数: as2.0代码(按钮上写的发送信息代码): on (release) ...

  9. webapp之meta

    meta基础知识 H5页面窗口自动调整到设备宽度,并禁止用户缩放页面 <meta name="viewport" content="width=device-wid ...

  10. 实用的Portraiture滤镜磨皮教程

    滤镜可以快速地进行人物皮肤美化处理,Portraiture滤镜可以将皮肤柔化,消除多余的斑点,在磨皮后复制细节保留较多的通道到图层面板,用高反差保留滤镜提取细节,再更改图层混合模式即可以得到漂亮的肤色 ...