SQL 通配符


在搜索数据库中的数据时,SQL 通配符可以替代一个或多个字符。

SQL 通配符必须与 LIKE 运算符一起使用。

通配符 描述
% 替代一个或多个字符
_ 仅替代一个字符
[charlist] 字符列中的任何单一字符

[^charlist]

或者

[!charlist]

不在字符列中的任何单一字符

注释: "%" 的使用请看上一节


使用 _ 通配符

实例1:

从 "Persons" 表中选取名字的第一个字符之后是 "eorge" 的人:

SELECT * FROM Persons
WHERE FirstName LIKE '_eorge'

实例2:

从 "Persons" 表中选取的这条记录的姓氏以 "C" 开头,然后是一个任意字符,然后是 "r",然后是任意字符,然后是 "er":

SELECT * FROM Persons
WHERE LastName LIKE 'C_r_er'

使用 [charlist] 通配符

实例1:

从 "Persons" 表中选取居住的城市以 "A" 或 "L" 或 "N" 开头的人:

SELECT * FROM Persons
WHERE City LIKE '[ALN]%'

实例2:

从 "Persons" 表中选取居住的城市不以 "A" 或 "L" 或 "N" 开头的人:

SELECT * FROM Persons
WHERE City LIKE '[!ALN]%'

注释: 上面的 [charlist] 语法在 MySQL 不适用。必须以正则表达式代替,正确如下:


REGEXP 或者 RLIKE 关键字均可

SELECT * FROM Persons WHERE City RLIKE '^[ALN]'

如果要区别大小写,使用 binary 关键字

SELECT * FROM Persons WHERE City REGEXP binary '^[^ALN]'