在SQL结构化查询语言中,LIKE语句有着至关重要的作用。

LIKE语句的语法格式是:select * from 表名 where 字段名 like 对应值(子串),它主要是针对字符型字段的,它的作用是在一个字符型字段列中检索包含对应子串的。 
假设有一个数据库中有个表table1,在table1中有两个字段,分别是name和sex二者全是字符型数据。现在我们要在姓名字段中查询以“张”字开头的记录,语句如下: 
Java代码 
  1. select * from table1 where name like "张*"

如果要查询以“张”结尾的记录,则语句如下: 

Java代码 
  1. select * from table1 where name like "*张"

这里用到了通配符“*”,可以说,like语句是和通配符分不开的。下面我们就详细介绍一下通配符。 
匹配类型   
模式 
举例 及 代表值 
说明

多个字符 

c*c代表cc,cBc,cbc,cabdfec等 
它同于DOS命令中的通配符,代表多个字符。

多个字符 

%c%代表agdcagd等 
这种方法在很多程序中要用到,主要是查询包含子串的。

特殊字符 
a

  • a代表a*a
  • 代替*

    单字符 

    b?b代表brb,bFb等 
    同于DOS命令中的?通配符,代表单个字符

    单数字 

    k#k代表k1k,k8k,k0k 
    大致同上,不同的是代只能代表单个数字。

    字符范围 
    - [a-z]代表a到z的26个字母中任意一个 指定一个范围中任意一个 
    续上 
    排除 [!字符] [!a-z]代表9,0,%,*等 它只代表单个字符 
    数字排除 [!数字] [!0-9]代表A,b,C,d等 同上 
    组合类型 字符[范围类型]字符 cc[!a-d]#代表ccF#等 可以和其它几种方式组合使用 
    假设表table1中有以下记录: 
        name                          sex 
                    张小明              男 
        李明天       男 
        李a天       女 
        王5五       男 
        王清五           男

    下面我们来举例说明一下: 
    例1,查询name字段中包含有“明”字的。 
    select * from table1 where name like '%明%'

    例2,查询name字段中以“李”字开头。 
    select * from table1 where name like '李*'

    例3,查询name字段中含有数字的。 
     select * from table1 where name like '%[0-9]%'

    例4,查询name字段中含有小写字母的。 
    select * from table1 where name like '%[a-z]%'

    例5,查询name字段中不含有数字的。 
    select * from table1 where name like '%[!0-9]%'

    以上例子能列出什么值来显而易见。但在这里,我们着重要说明的是通配符“*”与“%”的区别。 
    很多朋友会问,为什么我在以上查询时有个别的表示所有字符的时候用"%"而不用“*”? 
    例子结果: 

    1. select * from table1 where name like *明*
    2. select * from table1 where name like %明%

    大家会看到,前一条语句列出来的是所有的记录,而后一条记录列出来的是name字段中含有“明”的记录,所以说,当我们作字符型字段包含一个子串的查询时最好采用“%”而不用“*”,用“*”的时候只在开头或者只在结尾时,而不能两端全由“*”代替任意字符的情况下。 
    更多有关mysql数据库的内容,请参考:http://www.jbxue.com/db/mysql。

    sql语句中like匹配的用法详解的更多相关文章

    1. SQL语句中 INNER JOIN的用法!

      一.SQL语句中  INNER JOIN的用法? 1.INNER JOIN的作用? 可以在两个或者更多的表中获取结果,得出一张新表. [隐式内连接] 表一 car  购物车 表二 user 用户 发现 ...

    2. Oracle数据库中序列(SEQUENCE)的用法详解

      Oracle数据库中序列(SEQUENCE)的用法详解   在Oracle数据库中,序列的用途是生成表的主键值,可以在插入语句中引用,也可以通过查询检查当前值,或使序列增至下一个值.本文我们主要介绍了 ...

    3. SVN中tag branch trunk用法详解

      SVN中tag branch trunk用法详解 2010-05-24 18:32 佚名 字号:T | T 本文向大家简单介绍一下SVN中tag branch trunk用法,SVN中tag bran ...

    4. delphi中Application.MessageBox函数用法详解

      delphi中Application.MessageBox函数用法详解 Application.MessageBox是TApplication的成员函数,声明如下:functionTApplicati ...

    5. SQL语句中的select高级用法

      #转载请联系 为了更好的了解下面的知识点,我们先创建两张表并插入数据. # 学生表 +----+-----------+------+--------+--------+--------+------ ...

    6. Microsoft SQL Server中的事务与并发详解

      本篇索引: 1.事务 2.锁定和阻塞 3.隔离级别 4.死锁 一.事务 1.1 事务的概念 事务是作为单个工作单元而执行的一系列操作,比如查询和修改数据等. 事务是数据库并发控制的基本单位,一条或者一 ...

    7. ubuntu中rar与unrar用法详解

      本文转载:http://helloklzs.iteye.com/blog/1139993 安装: sudo apt-get install rar 这样就可以安装了 删除是以下语句 sudo apt- ...

    8. .NET中的Timer类型用法详解

      这篇文章主要介绍了.NET中的Timer类型用法,较为详细的分析了Timer类型在各种环境下的用法,需要的朋友可以参考下   在.NET FrameWork中有多个Timer,那么怎么根据实际情况进行 ...

    9. PHP中Get()和Post()用法详解

      作为一个计算机系统,输入输出设备作为非核心设备却是不可或缺的,硬件如此,软件亦是如此.试想一台功能强劲的计算机,如果没有输入输出设备,它与一块只能耗电并且发出嗡嗡噪音的废铁有何不同.应用程序的道理也是 ...

    随机推荐

    1. C# mvc--EF引用程序集 和EDMX中相关的文件说明

    2. IOS获取系统时间 NSDate

      //返回当前时间,精确到毫秒.- (NSString *)getTimeNow { NSString* date; NSDateFormatter * formatter = [[NSDateForm ...

    3. c++ STL:队列queue、优先队列priority queue 的使用

      说明:本文全文转载而来,原文链接:http://www.cppblog.com/wanghaiguang/archive/2012/06/05/177644.html C++ Queues(队列) C ...

    4. Hosts文件是什么?

      Hosts文件主要作用是定义IP地址和主机名的映射关系,是一个映射IP地址和主机名的规定.可以用文本文件打开!当用户在浏览器中输入一个需要登录的 网址时,系统会首先自动从Hosts文件中寻找对应的IP ...

    5. IOS开发之上传APP

      IOS开发最终都会上传APP,但是当我们做好一个项目后.在上传AppStore上的时候往往会被各种原因打回来.让人蛋疼无比. 于是总结了比较容易出现项目被打回容易出现的原因 1.程序崩溃会被打回 这个 ...

    6. mysql开启general log的方法

      因为为了性能考虑,一般general log不会开启.slow log可以定位一些有性能问题的sql,而general log会记录所有的SQL. mysql5.0版本,如果要开启slow log.g ...

    7. Liunx UID and GID

      一个文件都有一个所有者, 表示该文件是谁创建的. 同时, 该文件还有一个组编号, 表示该文件所属的组, 一般为文件所有者所属的组. 如果是一个可执行文件, 那么在执行时, 一般该文件只拥有调用该文件的 ...

    8. Linux 字符设备控制技术

      字符设备控制技术 一.字符设备控制理论 1.作用 大部分设备除了具有<读写设备>的能力,还应该有<控制设备>的能力.比如改变 波特率 2. 应用程序接口 在用户空间中使用 Io ...

    9. Oracle数据库作业-1

      设有一数据库,包括四个表:学生表(Student).课程表(Course).成绩表(Score)以及教师信息表(Teacher).四个表的结构分别如表1-1的表(一)~表(四)所示,数据如表1-2的表 ...

    10. CSS3--幽灵按钮特效(实例)

      先预览效果 其中用到了CSS3的Transition属性:设置动画时间.效果:Transform属性:设置元素旋转.位移:box-sizing属性:以特定的方式定义某个区域的特定元素: 制作小三角方法 ...