用法简介
LIKE是SQL中的一个操作符,主要用于在WHERE子句中进行模糊匹配。LIKE操作符配合通配符(wildcard)使用,可以搜索特定的模式。
以下是一些常用的通配符:
%:代表任意字符序列(包括零字符序列)
_:代表单个字符
[charlist]:代表字符集,可以用来代替一个字符
[^charlist]:代表非字符集,可以用来代表除了指定的字符集以外的任何字符
例程
-- 查找所有以'a'开头,以'y'结尾的客户
SELECT * FROM Customers WHERE CustomerName LIKE 'a%y';
-- 查找所有至少包含一个'a'和至少包含一个'y'的客户
SELECT * FROM Customers WHERE CustomerName LIKE '%a%y%';
-- 查找所有名字第一个字母是'B'的客户
SELECT * FROM Customers WHERE CustomerName LIKE 'B%';
-- 查找所有名字第二个字母是'u'的客户
SELECT * FROM Customers WHERE CustomerName LIKE '%u%';
-- 查找所有名字中包含'th'的客户
SELECT * FROM Customers WHERE CustomerName LIKE '%th%';
-- 查找所有名字中包含'th'的客户,但不区分大小写:
SELECT * FROM Customers WHERE CustomerName LIKE '%th% COLLATE Latin1_General_CI_AI';
-- _ 通配符,选取 name 以一个任意字符开始,然后是 "oogle" 的所有客户
SELECT * FROM Customers WHERE CustomerName LIKE '_oogle';
-- [charlist] 通配符。,选取 name 以 "G"、"F" 或 "s" 开始的所有客户
SELECT * FROM Customers WHERE CustomerName REGEXP '^[GFs]';
-- 选取 name 不以 A 到 H 字母开头的所有客户
SELECT * FROM Customers WHERE CustomerName REGEXP '^[^A-H]';
需要注意的是,LIKE操作符对大小写敏感,这取决于使用的数据库系统。例如,在SQL Server中,默认情况下是区分大小写的。如果需要执行不区分大小写的搜索,可以使用COLLATE子句来指定一个不区分大小写的校对规则。另外,某些数据库系统也支持使用ESCAPE关键字进行转义搜索。