SQL 通配符(Wildcard)

当我们搜索数据库中的数据时,SQL 通配符(wildcard) 与SQL LIKE 函数一起使用,用来替代一个或多个字符。


在SQL中我们可以使用的通配符:

通配符(Wildcard) 描述
% 零,一或多个字符
_ 一个字符
[字符列表] 字符列表中的任何单字符
[^字符列表] or [!字符列表] 不知字符列表中的任何单字符

注:[字符列表],[^字符列表] 和 [!字符列表] 在 MySQL 中不被恰当的支持。

SQL 通配符(Wildcard) 范例

例1
数据表: Employees

EmployeeId FirstName LastName Department Salary
203 Mazojys Fxoj Finance 78000
204 Jozzh Lnanyo Finance 45800
205 Syllauu Dfaafk Finance 55000
206 Gecrrcc Srlkrt Finance 75000
302 Jssme Bdnaa Development 75000
303 Dnnaao Errllov Development 55000
304 Tyoysww Osk Development 49000

选择所有FirstName以Ma开头的职员:

SELECT * FROM Employees
WHERE FirstName like 'Ma%'

结果会类似于:

EmployeeId FirstName LastName Department Salary
203 Mazojys Fxoj Finance 78000

例2
一些匹配示例:

Pattern 字符串
B_T 三个字符的字符串,以B开头,另一字符,以T结尾。例如:’BaT’, ‘BHT’, ‘BET’ 符号条件,但 ‘BaaT’, ‘BOAT’不符合(因为它们在B和T之间有两个字符)。
AB% 所有以 ‘AB’ 开头的字符串。例如:’ABC’, ‘ABCD’, ‘AB123′
%OR 所有以 ‘OR’ 结尾的字符串。例如:’DOCTOR’, ‘AUTHOR’
%OO% 任何地方含有’OO’ 的字符串。例如:’GOOD’, ‘TOO’, ‘LOOK’, ‘OOPS’
%R_N% 任何地方含有这样的三个字符:以’R’开头,另一字符,以’N’结尾。例如:’PRINCE’, ‘PRINT’, ‘GRAND’, ‘RUN’, ‘CATHARINES’
[AB]% 任何以’A’ 或 ‘B’ 开头的字符串。例如:’APPLE’, ‘AIR’, ‘BROTHER’, ‘BLUE’
[!AB]% 任何不以’A’ 或 ‘B’ 开头的字符串。 例如:’GOOD’, ‘WORLD’