SQL 通配符

SQL 中的通配符与 LIKE 子句一起使用,用于替换字符串中的单个字符或一组字符。

%_ 是 SQL 中两个常用的通配符。

示例

-- select customers who live in countries
-- that start with 'US' followed by a single character
SELECT *
FROM Customers
WHERE country LIKE 'US_'

这里,_ 是一个通配符,表示字符串后面正好有一个字符。

因此,SQL 查询会选择 countryUS 开头,并且后面只有一个字符的客户。


SQL 通配符语法

SQL 通配符的语法是

SELECT column1, column 2, ... 
FROM table
WHERE column LIKE 'Wildcard String';

这里,

  • column1, column2, ... 是用于选择数据的列
  • table 是表的名称。
  • column 是我们想要应用过滤器的列
  • LIKEcolumnWildcard String 匹配
  • Wildcard String 是字符串和通配符的组合

例如,

-- select rows where the last name
-- of customers start with R 
SELECT *
FROM Customers
WHERE last_name LIKE 'R%';

这里,%(零个或多个字符)是一个通配符。因此,SQL 命令会选择 last_nameR 开头,后面跟零个或多个字符的客户。

What are wildcards in SQL
示例:SQL 通配符

推荐阅读: SQL LIKE 运算符


SQL 中的 % 通配符

SQL 中的 % 通配符用于表示零个或多个字符。例如,

-- select rows where the first names
-- of customers start with J 
SELECT *
FROM Customers
WHERE first_name LIKE 'J%';

这里,SQL 命令会选择姓氏以 J 开头,后面跟零个或多个字符的客户。

表达式 字符串 匹配?
J% J

Jar

Major

Majority
匹配

匹配

不匹配

不匹配

SQL 中的 _ 通配符

SQL 中的 _ 通配符用于表示字符串中正好一个字符。例如,

-- select customers whose countries start with U
-- followed by a single character
SELECT *
FROM Customers
WHERE country LIKE 'U_';

这里,SQL 命令会选择 country 名称以 U 开头,并且后面只有一个字符的客户。

表达式 字符串 匹配?
U_ U

UK

USA
不匹配

匹配

不匹配

SQL 中的 [] 通配符

SQL 中的 [] 通配符用于表示方括号内的任何一个字符。例如,

-- select customers with country that starts with UK or UA
-- and is followed by any number of characters

SELECT *
FROM Customers
WHERE country LIKE 'U[KA]%';

这里,SQL 命令会选择 country 名称以 U 开头,后面是 KA,再后面是任意数量字符的客户。

表达式 字符串 匹配?
U[KA]% U

UK

UAE

USA
不匹配

匹配

匹配

不匹配

SQL 中的 ! 通配符

SQL 中的 ! 通配符用于从字符串中排除字符。例如,

--select rows where customer's last names don't start with D or R
SELECT *
FROM Customers
WHERE last_name LIKE '[!DR]%';

这里,SQL 命令会选择 last_name 不以 DR 开头的客户。

表达式 字符串 匹配?
[!DR]% Doe

Reinhardt

Luna

D

O

R
不匹配

不匹配

匹配

不匹配

匹配

不匹配

不同数据库中的通配符

SQL Server
  • % - 零个或多个字符
  • _ - 单个字符
  • [] - 方括号内的单个字符
  • ^ - 不在方括号内的任何字符
  • - - 范围内的单个字符
PostgreSQL 和 MySQL
  • % - 零个或多个字符
  • _ - 单个字符
Oracle
  • % - 零个或多个字符
  • _ - 单个字符
  • [] - 方括号内的单个字符
  • {} - 转义字符
你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战