科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道深入研究SQL结构化查询语言中的LIKE语句

深入研究SQL结构化查询语言中的LIKE语句

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

  在SQL结构化查询语言中,LIKE语句有着至关重要的作用。      LIKE语句的语法格式是:select * from 表名 where 字段名 like 对应值(子串),它主要是针对字符型字段的。

作者:中国IT实验室 来源:中国IT实验室 2007年10月1日

关键字: SQL 数据库 SQL Server

  • 评论
  • 分享微博
  • 分享邮件

  在SQL结构化查询语言中,LIKE语句有着至关重要的作用。
  
  LIKE语句的语法格式是:select * from 表名 where 字段名 like 对应值(子串),它主要是针对字符型字段的,它的作用是在一个字符型字段列中检索包含对应子串的。
  
  假设有一个数据库中有个表table1,在table1中有两个字段,分别是name和sex二者全是字符型数据。现在我们要在姓名字段中查询以“张”字开头的记录,语句如下:
  select * from table1 where name like "张*"
  
  如果要查询以“张”结尾的记录,则语句如下:
  select * from table1 where name like "*张"
  
  这里用到了通配符“*”,可以说,like语句是和通配符分不开的。下面我们就详细介绍一下通配符。
  
 

  续上
  
 

  假设表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]%'
  
  以上例子能列出什么值来显而易见。但在这里,我们着重要说明的是通配符“*”与“%”的区别。
  
  很多朋友会问,为什么我在以上查询时有个别的表示所有字符的时候用"%"而不用“*”?先看看下面的例子能分别出现什么结果:
  select * from table1 where name like '*明*'
  select * from table1 where name like '%明%'
  
  大家会看到,前一条语句列出来的是所有的记录,而后一条记录列出来的是name字段中含有“明”的记录,所以说,当我们作字符型字段包含一个子串的查询时最好采用“%”而不用“*”,用“*”的时候只在开头或者只在结尾时,而不能两端全由“*”代替任意字符的情况下。
  
  以上是本人对like语句的浅见,不足之处请朋友们指正。

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章