`
zhangfeilo
  • 浏览: 397442 次
  • 性别: Icon_minigender_1
  • 来自: 昆明
社区版块
存档分类
最新评论

SQL LIKE 通配符的用法

阅读更多

_    与任意单字符匹配
 
%    与包含一个或多个字符的字符串匹配
 
[ ]  与特定范围(例如,[a-f])或特定集(例如,[abcdef])中的任意单字符匹配。
 
[^]  与特定范围(例如,[^a-f])或特定集(例如,[^abcdef])之外的任意单字符匹配。
 使用like比较字,加上SQL里的通配符,请参考以下:
a.. LIKE 'Mc%' 将搜索以字母 Mc 开头的所有字符串(如 McBadden)。

b.. LIKE '%inger' 将搜索以字母 inger 结尾的所有字符串(如 Ringer、
Stringer)。

c.. LIKE '%en%' 将搜索在任何位置包含字母 en 的所有字符串(如 Bennet、
Green、McBadden)。

d.. LIKE '_heryl' 将搜索以字母 heryl 结尾的所有六个字母的名称(如 Cheryl、
Sheryl)。

e.. LIKE '[CK]ars[eo]n' 将搜索下列字符串:Carsen、Karsen、Carson 和 Karson
(如 Carson)。

f.. LIKE '[M-Z]inger' 将搜索以字符串 inger 结尾、以从 M 到 Z 的任何单个字
母开头的所有名称(如 Ringer)。

g.. LIKE 'M[^c]%' 将搜索以字母 M 开头,并且第二个字母不是 c 的所有名称(如
MacFeather)。


 
 
例子:
? WHERE FirstName LIKE '_im' 可以找到所有三个字母的、以 im 结尾的名字(例如,Jim、Tim)。 
 
? WHERE LastName LIKE '%stein' 可以找到姓以 stein 结尾的所有员工。 
 
? WHERE LastName LIKE '%stein%' 可以找到姓中任意位置包括 stein 的所有员工。 
 
? WHERE FirstName LIKE '[JT]im' 可以找到三个字母的、以 im 结尾并以 J 或 T 开始的名字(即仅有 Jim 和 Tim) 
 
? WHERE LastName LIKE 'm[^c]%' 可以找到以 m 开始的、后面的(第二个)字母不为 c 的所有姓。

LIKE语句的语法格式是:select * from 表名 where 字段名 like 对应值(子串),它主要是针对字符型字段的,它的作用是在一个字符型字段列中检索包含对应子串的。

  假设有一个数据库中有个表table1,在table1中有两个字段,分别是name和sex二者全是字符型数据。现在我们要在姓名字段中查询以“张”字开头的记录,语句如下:

   select * from table1 where name like "张*"

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

  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]%'

  以上例子能列出什么值来显而易见。但在这里,我们着重要说明的是通配符“*”与“%”的区别。

  很多朋友会问,为什么我在以上查询时有个别的表示所有字符的时候用"%"而不用“*”?先看看下面的例子能分别出现什么结果:

  select * from table1 where name like '*明*'

   select * from table1 where name like '%明%'

  大家会看到,前一条语句列出来的是所有的记录,而后一条记录列出来的是name字段中含有 “明”的记录,所以说,当我们作字符型字段包含一个子串的查询时最好采用“%”而不用“*”,用“*”的时候只在开头或者只在结尾时,而不能两端全由 “*”代替任意字符的情况下。

 

分享到:
评论

相关推荐

    sql的like用法

    在SQL查询语言中,`LIKE`是一个非常实用的功能,它允许我们在查询时使用通配符来匹配字符串模式。这在处理大量数据时特别有用,可以帮助我们快速定位到满足特定模式的数据行。下面我们将详细介绍`LIKE`语句的基本...

    SQLLIKE用法.docx

    SQL LIKE 用法详解 SQL LIKE 用法是 SQL 语言中一种常用的字符串匹配方式,用于在查询语句...SQL LIKE 用法需要注意时间查询处理方法、特殊字符处理方法和通配符特殊用法,以便正确地使用 LIKE 操作符进行字符串匹配。

    SQL语句 SELECT LIKE like用法详解SQL语句 SELECT LIKE like用法详解

    2. `*`:在某些SQL方言中(如MySQL),`*`和`%`功能相同,但在标准SQL中,`*`通常用于目录路径或文件名中的通配符,而不是作为LIKE语句的通配符。 3. `?`:代表单个任意字符。例如,`name like 'b?b'`会返回像“brb...

    SQL 通配符

    下面我们将深入探讨SQL中的两种主要通配符:百分号(%)和下划线(_),以及它们的用法。 1. **百分号(%)**: 百分号通配符 `%` 代表零个、一个或多个任意字符。当你在查询中使用`%`时,它会匹配任何字符串,...

    SQL中查询中使用通配符

    在VC(Visual C++)环境中实现这些查询,你需要创建一个数据库连接,然后使用SQL的`LIKE`操作符结合通配符进行查询。通常,这涉及到使用ODBC(Open Database Connectivity)或者ADO(ActiveX Data Objects)库来执行...

    SQL语言中使用的通配符

    在SQL Server中,通配符主要有四种: "_"、"%"、"[]"和"[^]",每种通配符都有其特定的使用场景和用法。 1. "_"通配符 "_"通配符用来匹配任意单个字符,该符号只能匹配一个字符。它可以放在查询条件的任意位置,且...

    sqlserver -like

    本文将深入探讨`LIKE`语句的使用方法,特别是如何将通配符作为文字进行处理,以及如何利用`ESCAPE`关键字来解决特殊字符的问题。 ### `LIKE`语句的基本用法 `LIKE`语句在SQL查询中用于模式匹配,主要涉及以下两个...

    wildcard_attacks(利用SQL通配符进行DOS攻击)

    通配符攻击是一种利用SQL Server的特定特性来进行DOS攻击的方法,通过精心构造的搜索查询来过度消耗服务器资源,导致正常的服务请求无法得到响应。为了防范这类攻击,开发者应当注意限制搜索查询中的通配符使用,...

    Like-and-OrderBy.rar_sql like order by

    因此,在处理大量数据时,应谨慎使用LIKE,尤其是与通配符配合使用时。 总结一下,LIKE和ORDER BY都是SQL查询中不可或缺的部分。LIKE提供了强大的字符串匹配功能,而ORDER BY则确保了查询结果的有序性。了解它们的...

    SQL优化 '%5400%' LIKE操作符

    ### SQL优化 '%5400%' LIKE操作符 在数据库查询优化中,SQL语句的编写方式对于查询性能有着至关重要的影响。本文将基于提供的标题、描述和部分内容,深入探讨几种常用的SQL优化策略以及特定场景下的优化技巧。 ###...

    SQL查询语句通配符与ACCESS模糊查询like的解决方法

    SQL中的LIKE操作符允许我们使用通配符来进行模式匹配查询。通配符主要有两种,一是单字符匹配通配符,另一个是多字符匹配通配符。不同的数据库系统中,这些通配符可能有所差异,本文将重点讨论Microsoft Access和SQL...

    sql语句中like的用法详细解析

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

    SQL Server中通配符的使用示例

    本篇文章将深入探讨SQL Server中常见的三种通配符:`_`、`[]` 和 `[^]`,以及如何结合使用`PATINDEX`函数进行更复杂的字符串匹配。 1. **_ 运算符**: `_` 代表一个任意字符。在示例中,`LIKE '_an'` 用于找到...

    SQL 必知必会 6 - 用通配符进行过滤1

    在SQL中,`LIKE`操作符是用于在查询中执行模糊匹配的关键工具,它结合了通配符来帮助用户寻找符合特定模式的数据。本节主要介绍了三种常用的通配符:百分号`%`、下划线`_`以及方括号`[]`。 6.1 `LIKE`操作符 `LIKE`...

    SQL常用命令使用方法

    - `LIKE`操作符允许使用通配符进行模糊匹配,例如`'%字段值%'`。 - `TOP N`用于选取前N条记录,`ORDER BY`可用来确定顺序。 - `IN`操作符用于指定一组可能的值,匹配任何在列表中的值。 - `BETWEEN`用于选取介于...

    详解SQL 通配符

    以上就是在SQL中使用通配符进行模糊匹配的基本方法。在实际工作中,这些通配符可以帮助你更灵活地进行数据查询,尤其是在处理大量不确定或部分已知的数据时。不过需要注意的是,虽然通配符查询提供了便利,但它们也...

    关于通配符的所有处理函数

    以下是对标题和描述中提及的通配符及其使用方法的详细说明: 1. `%` (百分号):这个通配符表示零个、一个或多个任意字符。例如,在SQL的LIKE语句中,`LIKE ‘LO%’` 将匹配所有以"LO"开头的字符串,无论其后跟的是...

    SQL中使用ESCAPE定义转义符详解

    如果我们想要查询产品名中包含"%"字符的记录,正常的`LIKE`语句`LIKE '%%'`将会返回所有以任何字符开头,以任何字符结尾的记录,因为`%`在这里作为通配符使用。但我们的目标是找到那些名字中真正包含百分号的记录,...

Global site tag (gtag.js) - Google Analytics