`
xiaobian
  • 浏览: 588263 次
  • 来自: 北京
社区版块
存档分类
最新评论

SQL LIKE 通配符随笔

阅读更多

在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字段中含有“明”的记录,所以说,当我们作字符型字段包含一个子串的查询时最好采用“%”而不用“*”,用“*”的时候只在开头或者只在结尾时,而不能两端全由“*”代替任意字符的情况下。

 

要在 match_expression 中搜索并且可以包括下列有效通配符的特定字符串。pattern 的最大长度可达 8,000 字节。

通配符 说明 示例
Sql代码 复制代码
  1. %   包含零个或多个字符的任意字符串。    WHERE title <SPAN class=hilite1>LIKE</SPAN> '%computer%' 将查找在书名中任意位置包含单词 "computer" 的所有书名。   
  2.   
  3. _(下划线)  任何单个字符。 WHERE au_fname <SPAN class=hilite1>LIKE</SPAN> '_ean' 将查找以 ean 结尾的所有 4 个字母的名字(Dean、Sean 等)。   
  4.   
  5. [ ] 指定范围 ([a-f]) 或集合 ([abcdef]) 中的任何单个字符。   WHERE au_lname <SPAN class=hilite1>LIKE</SPAN> '[C-P]arsen' 将查找以 arsen 结尾并且以介于 C 与 P 之间的任何单个字符开始的作者姓氏,例如 Carsen、Larsen、Karsen 等。   
  6.   
  7. [^] 不属于指定范围 ([a-f]) 或集合 ([abcdef]) 的任何单个字符。 WHERE au_lname <SPAN class=hilite1>LIKE</SPAN> 'de[^l]%' 将查找以 de 开始并且其后的字母不为 l 的所有作者的姓氏。   
  8. escape_character   
%	包含零个或多个字符的任意字符串。	WHERE title LIKE '%computer%' 将查找在书名中任意位置包含单词 "computer" 的所有书名。

_(下划线)	任何单个字符。	WHERE au_fname LIKE '_ean' 将查找以 ean 结尾的所有 4 个字母的名字(Dean、Sean 等)。

[ ]	指定范围 ([a-f]) 或集合 ([abcdef]) 中的任何单个字符。	WHERE au_lname LIKE '[C-P]arsen' 将查找以 arsen 结尾并且以介于 C 与 P 之间的任何单个字符开始的作者姓氏,例如 Carsen、Larsen、Karsen 等。

[^]	不属于指定范围 ([a-f]) 或集合 ([abcdef]) 的任何单个字符。	WHERE au_lname LIKE 'de[^l]%' 将查找以 de 开始并且其后的字母不为 l 的所有作者的姓氏。
escape_character 


放在通配符之前用于指示通配符应当解释为常规字符而不是通配符的字符。escape_character 是字符表达式,无默认值,并且计算结果必须仅为一个字符。
分享到:
评论

相关推荐

    SQL 通配符

    在SQL(结构化查询语言)中,通配符是一种强大的工具,用于在查询时匹配不完全确定的数据。它们允许用户模糊搜索,这对于数据挖掘、数据分析和日志查询等任务非常有用。下面我们将深入探讨SQL中的两种主要通配符:百...

    SQL Server 2005 通配符及其意义

    在SQL Server 2005中,通配符是用于数据检索时匹配字符串模式的关键工具。这些通配符使得查询可以更加灵活,帮助用户在不完全知道确切信息的情况下找到匹配的数据。以下是SQL Server 2005中常用的通配符及其具体含义...

    T-SQL 通配符和逻辑表达式

    T-SQL,即Transact-SQL,是Microsoft SQL Server所使用的SQL方言,它不仅支持标准SQL语句,还提供了一系列增强功能,包括对通配符和逻辑表达式的灵活运用,这使得数据检索更加高效和精确。 ### T-SQL通配符详解 ##...

    SQL中查询中使用通配符

    SQL通配符主要用于`LIKE`、`GLOB`、`REGEXP`等操作符中,帮助我们进行更灵活的数据筛选。下面将详细介绍SQL中的几种常见通配符及其用法。 1. `%` - 百分号通配符 `%` 是SQL中最常用的通配符,它代表零个、一个或多...

    SQL通配符 基礎知識

    SQL通配符 SQL通配符 SQL通配符 SQL通配符 SQL通配符

    SQL语言中使用的通配符

    SQL语言中使用的通配符 SQL语言中使用的通配符是数据库查询中非常重要的概念,它们可以帮助开发者更方便地查询和匹配数据库中的数据。在SQL Server中,通配符主要有四种: "_"、"%"、"[]"和"[^]",每种通配符都有其...

    SQL 通配符DOC版

    SQL 通配符是数据库查询中的重要工具,用于在 WHERE 子句中匹配不完全确定的数据。它们在配合 LIKE 运算符使用时,能够帮助用户模糊搜索数据库中的记录,适用于那些不知道确切值但知道部分信息的情况。在 SQL 中,...

    SQL 语法 SQL 总结 SQL教程

    SQL Like SQL 通配符 SQL In SQL Between SQL Aliases SQL Join SQL Inner Join SQL Left Join SQL Right Join SQL Full Join SQL Union SQL Select Into SQL Create DB SQL Create Table SQL ...

    sql的like用法

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

    sqlserver -like

    在SQL Server中,`LIKE`语句是一种非常实用的搜索工具,它允许用户通过使用通配符来查询数据库中的特定模式。这对于模糊搜索或者部分匹配的情况尤其有用。本文将深入探讨`LIKE`语句的使用方法,特别是如何将通配符...

    SQLLIKE用法.docx

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

    浅谈MySQL模糊查询中通配符的转义

    sql中经常用like进行模糊查询,而模糊查询就要用到百分号“%”,下划线“_”这些通配符,其中“%”匹配任意多个字符,“_”匹配单个字符。如果我们想要模糊查询带有通配符的字符串,如“60%”,“user_name”,就...

    SQL使用Like模糊查询

    在SQL(Structured Query Language)中,`LIKE` 模糊查询是一种非常实用的功能,它允许用户根据特定的模式匹配数据库中的数据。这个功能在数据检索、分析和处理时尤其有用,尤其是在我们不确定确切的搜索词或者需要...

    详解SQL 通配符

    在 SQL 中,通配符与 SQL LIKE 操作符一起使用。 SQL 通配符用于搜索表中的数据。 在 SQL 中,可使用以下通配符: 通配符 描述 % 替代 0 个或多个字符 _ 替代一个字符 [charlist] 字符列中的任何单一字符 ...

    MySql模糊查询like通配符使用详细介绍.docx

    MySQL 模糊查询 Like 通配符使用详细介绍 MySQL 提供了两种模式匹配方式:SQL 模式和正则表达式模式。SQL 模式允许使用“_”匹配任何单个字符,而“%”匹配任意数目字符(包括零个字符)。在 MySQL 中,SQL 的模式...

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

    SQL Server支持以下通配符用于`LIKE`查询: - `%`:匹配任意数量的字符。 - `[]`:匹配指定范围内的单个字符。 - `[^]`:匹配不在指定范围内的单个字符。 - `_`:匹配单个字符。 例如,如果用户在搜索框中输入`'foo...

    Like-and-OrderBy.rar_sql like order by

    在SQL语言中,LIKE和ORDER BY是两个非常重要的关键字,它们分别用于数据的查询和排序。今天我们将深入探讨这两个概念,以及它们在T-SQL(Transact-SQL,微软SQL Server中的SQL方言)中的具体应用。 首先,我们来...

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

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

Global site tag (gtag.js) - Google Analytics