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. 基于WebDriverAgent代理服务,实现iOS手机app自动化测试的框架搭建

    iOS自动化测试一直使用的appium,iOS系统升级至10.0 Xcode8.0之后, 改用WebDriverAgent代理服务作为server,编写了一套基于WebDriverAgent服务 ap ...

  2. 使用7-zip制作自解压安装包

    7-zip制作自解压包很方便,只要在压缩时选择”创建自释放程序”选项. 而自解压安装包有点麻烦,不如WinRAR方便. 准备工具:下载 LZMA SDK 这里面有 7zSD.sfx (16.04版7z ...

  3. IOS自定义表格UITableViewCell

    在UITableView中,自定义表格,最原始是继承UITableViewCell,然后通过写代码方式去搞,但是这个费事了. 1.在storyboard中 给一个ViewController的tabi ...

  4. Hibernate5.2之一对一外键关联(五)

                                                     Hibernate5.2之一对一外键关联(五) 一.简介 上篇文章中笔者介绍了Hibernate关联关 ...

  5. 键盘键与虚拟键码对照表+delphi虚拟键码对应关键

    键盘键与虚拟键码对照表 字母和数字键 数字小键盘的键 功能键 其它键 键 键码 键 键码 键 键码 键 键码 A 65 0 96 F1 112 Backspace 8 B 66 1 97 F2 113 ...

  6. nginx响应时间监控脚本

    最近我们服务的使用方总是反应说我们接口超时,于是做了一个监控脚本,统计最近五分钟的响应情况,并对异常情况发送邮件报警. #!/bin/bash function define(){ ori_log_p ...

  7. Async Programming - 1 async-await 糖的本质(2)

    上一篇讲了这么多,其实说的就是一个事,return会被编译器重写成SetResult,所以如果我们的异步函数返回的是一个Task<int>,代码就要改成这样: using System; ...

  8. CGI

    CGI的工作原理一般是这么定义的: 客户端web浏览器浏览某个主页后,利用一定的方式提交数据,并通过HTTP协议向Web服务器发出请求,服务器端的HTTP Daemon(守护进程)将描述的主页信息通过 ...

  9. AMap编辑折线、多边形、圆

    <!doctype html> <html> <head> <meta charset="utf-8"> <meta http ...

  10. Android开发之百度地图--环境搭建

    这篇文章总结自极客学院张浩老师的android教学课程,在此对张浩老师和崔爽老师表示非常感谢. (一)基础知识 在申请百度地图开发密钥的时候需要用到数字签名证书的内容,所以这里先对此做一下介绍. (1 ...