SQL 通配符:用于模糊搜索和匹配的 SQL 关键技巧

小万哥
• 阅读 327

SQL通配符字符

通配符字符用于替代字符串中的一个或多个字符。通配符字符与LIKE运算符一起使用。LIKE运算符用于在WHERE子句中搜索列中的指定模式。

示例

返回所有以字母 'a' 开头的客户:

SELECT * FROM Customers
WHERE CustomerName LIKE 'a%';

通配符字符

符号 描述
% 表示零个或多个字符
_ 表示一个单个字符
[] 表示括号内的任何单个字符
^ 表示括号内不在括号内的任何字符
- 表示指定范围内的任何单个字符
{} 表示任何转义字符
  • *不支持在PostgreSQL和MySQL数据库中。
  • **仅支持在Oracle数据库中。

演示数据库

以下是示例中使用的 Customers 表的一部分:

CustomerID CustomerName ContactName Address City PostalCode Country
1 Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany
2 Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitución 2222 México D.F. 05021 Mexico
3 Antonio Moreno Taquería Antonio Moreno Mataderos 2312 México D.F. 05023 Mexico
4 Around the Horn Thomas Hardy 120 Hanover Sq. London WA1 1DP UK
5 Berglunds snabbköp Christina Berglund Berguvsvägen 8 Luleå S-958 22 Sweden

使用 % 通配符

% 通配符表示任意数量的字符,甚至是零个字符。

示例

返回以模式 'es' 结尾的所有客户:

SELECT * FROM Customers
WHERE CustomerName LIKE '%es';

示例

返回包含模式 'mer' 的所有客户:

SELECT * FROM Customers
WHERE CustomerName LIKE '%mer%';

使用 _ 通配符

_ 通配符表示一个单个字符。它可以是任何字符或数字,但每个 _ 代表一个且仅代表一个字符。

示例

返回所有以任何字符开头,然后是 "ondon" 的城市的客户:

SELECT * FROM Customers
WHERE City LIKE '_ondon';

示例

返回所有以 "L" 开头,然后是任何 3 个字符,以 "on" 结尾的城市的客户:

SELECT * FROM Customers
WHERE City LIKE 'L___on';

使用 [] 通配符

[] 通配符返回一个结果,如果括号内的任何字符都匹配。

示例

返回以 "b"、"s" 或 "p" 中的任何字符开头的所有客户:

SELECT * FROM Customers
WHERE CustomerName LIKE '[bsp]%';

使用 - 通配符

  • 通配符允许您在 [] 通配符内指定字符范围。

示例

返回以 "a"、"b"、"c"、"d"、"e" 或 "f" 开头的所有客户:

SELECT * FROM Customers
WHERE CustomerName LIKE '[a-f]%';

组合通配符

任何通配符,如 % 和 _,都可以与其他通配符一起使用。

示例

返回以 "a" 开头且至少为 3 个字符长的客户:

SELECT * FROM Customers
WHERE CustomerName LIKE 'a__%';

示例

返回第二个位置有 "r" 的客户:

SELECT * FROM Customers
WHERE CustomerName LIKE '_r%';

没有通配符

如果没有指定通配符,短语必须精确匹配才能返回结果。

示例

返回所有来自西班牙的客户:

SELECT * FROM Customers
WHERE Country LIKE 'Spain';

Microsoft Access通配符

Microsoft Access数据库有一些其他的通配符:

符号 描述 示例
* 表示零个或多个字符 bl* 可以找到 bl、black、blue 和 blob
? 表示一个单个字符 h?t 可以找到 hot、hat 和 hit
[] 表示括号内的任何单个字符 h[oa]t 可以找到 hot 和 hat,但不会找到 hit
! 表示括号内不在括号内的任何字符 h[!oa]t 可以找到 hit,但不会找到 hot 和 hat
- 表示指定范围内的任何单个字符 c[a-b]t 可以找到 cat 和 cbt
# 表示一个单个数字符号 2#5 可以找到 205、215、225、235、245、255、265、275、285 和 295

最后

为了方便其他设备和平台的小伙伴观看往期文章:公众号搜索Let us Coding,或者扫描下方二维码,关注公众号,即可获取最新文章。

看完如果觉得有帮助,欢迎点赞、收藏关注

SQL 通配符:用于模糊搜索和匹配的 SQL 关键技巧

点赞
收藏
评论区
推荐文章
Peter20 Peter20
3年前
mysql中like用法
like的通配符有两种%(百分号):代表零个、一个或者多个字符。\(下划线):代表一个数字或者字符。1\.name以"李"开头wherenamelike'李%'2\.name中包含"云",“云”可以在任何位置wherenamelike'%云%'3\.第二个和第三个字符是0的值wheresalarylike'\00%'4\
Peter20 Peter20
3年前
mysql like查询(模糊查询)
在结构化查询语言中,LIKE语句有着至关重要的作用。  LIKE语句的语法格式是:select\from表名where字段名like对应值(子串),它主要是针对字符型字段的,它的作用是在一个字符型字段列中检索包含对应子串的。  A:%包含零个或多个字符的任意字符串:1、LIKE'Mc%'将搜索以字母Mc开头的所有字符串(如M
Peter20 Peter20
3年前
MySQL like用法
MySQLLIKE语法LIKE运算符用于WHERE表达式中,以搜索匹配字段中的指定内容,语法如下:WHEREcolumnLIKEpatternWHEREcolumnNOTLIKEpattern在LIKE全面加上NOT运算符时,表示与LIKE相反的意思,即选择column不包含pattern的数据记录LIKE通常与通配符%一起使用,%表示通配
Wesley13 Wesley13
3年前
MySQL 权重搜索
SQL匹配\_和%SQL的模式匹配允许你使用“_”匹配任何单个字符,而“%”匹配任意数目字符(包括零个字符)。在MySQL中,SQL的模式缺省是忽略大小写的。注意在你使用SQL模式时,你不能使用或!;而使用LIKE或NOTLIKE比较操作符。语法:SELECT字段FROM表WHERE某字段Lik
Stella981 Stella981
3年前
Microsoft Word 之 通配符匹配
Word查找栏代码·通配符一览表序号清除使用通配符复选框勾选使用通配符复选框特殊字符代码特殊字符代码or通配符1任意单个字符^?任意单个字符?2任意数字^任意数字(单个)\09\3任意英文字母^$任意英文字母\azAZ\4段落标记^p段落标
Wesley13 Wesley13
3年前
mysql库操作
1、创建语句:createdatabases【ifnotexists】库名【选项】选项中可以指定字符集,校对集,意义不大。2、查看数据库:showdatabases【like'条件'】通配符:%代表任意长度的字符串,包括空字符串       \_代表任意字符3、查看创建数据看信息showcr
Wesley13 Wesley13
3年前
MySQL(四)DQL语言——条件查询
摘要:条件查询;条件表达式,逻辑表达式,模糊查询,like,通配符,转义字符,escape关键字,betweenand,in,isnull,isnotnull,安全等于。条件查询语法:SELECT查询列表FROM表名WHERE筛选条件;123456我们根据筛选条件简
胖大海 胖大海
2年前
linux常用的通配符与正则表达式
我们在很多地方都会用到通配符和正则表达式来实现我们的日常操作,提高我们的工作效率。但是很多新伙伴,往往容易将他们弄混。首先我们需要知道通配符和正则表达式的使用场景:通配符也叫文件名替换,它主要是作用于匹配文件名,常用命令是ls、find、cp、mv;正则表达式主要是作用于匹配文件中的字符串或编写脚本,常用命令命令是grep、awk、sed。大家缺乏机器练手的
小万哥 小万哥
1年前
SQL LIKE 运算符:用法、示例和通配符解释
SQL中的LIKE运算符用于在WHERE子句中搜索列中的指定模式。通常与LIKE运算符一起使用的有两个通配符:百分号%代表零个、一个或多个字符。下划线代表一个单个字符。以下是LIKE运算符的用法和示例:示例选择所有以字母"a"开头的客户:sqlSELECT
小万哥 小万哥
12个月前
SQL 中的运算符与别名:使用示例和语法详解
SQL中的IN运算符IN运算符允许您在WHERE子句中指定多个值,它是多个OR条件的简写。示例:获取您自己的SQLServer返回所有来自'Germany'、'France'或'UK'的客户:sqlSELECTFROMCustomersWHERECount