目录

SQL Like 运算符


SQL LIKE 运算符

这个LIKE运算符用于 WHERE子句在列中搜索指定模式。

有两个通配符经常与 LIKE运算符:

  • 百分号%代表零个、一个或多个字符
  • 下划线符号_代表一个单一字符

您将了解更多有关下一章中的通配符

示例

选择以字母 "a" 开头的所有客户:

SELECT * FROM Customers
WHERE CustomerName LIKE 'a%';
亲自试一试 »

语法

SELECT column1, column2, ...
FROM table_name
WHERE columnN LIKE pattern;


演示数据库

以下是选自顾客示例中使用的表:

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

_ 通配符

这个_通配符代表单个字符。

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

示例

返回来自以 'L' 开头、后跟一个通配符、然后是 'nd' 和两个通配符的城市的所有客户:

SELECT * FROM Customers
WHERE city LIKE 'L_nd__';
亲自试一试 »


% 通配符

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

示例

返回来自某个城市的所有客户包含字母“L”:

SELECT * FROM Customers
WHERE city LIKE '%L%';
亲自试一试 »

以。。开始

要返回以特定字母或短语开头的记录,请添加%在字母或短语的末尾。

示例

返回所有以“La”开头的客户:

SELECT * FROM Customers
WHERE CustomerName LIKE 'La%';
亲自试一试 »

提示:您还可以使用组合任意数量的条件 AND或者OR运算符。

示例

返回以“a”开头或以“b”开头的所有客户:

SELECT * FROM Customers
WHERE CustomerName LIKE 'a%' OR CustomerName LIKE 'b%';
亲自试一试 »

以。。结束

要返回以特定字母或短语结尾的记录,请添加%在字母或短语的开头。

示例

返回所有以“a”结尾的客户:

SELECT * FROM Customers
WHERE CustomerName LIKE '%a';
亲自试一试 »

提示:您还可以组合 "starts with" 和 "ends with":

示例

返回以 "b" 开头并以 "s" 结尾的所有客户:

SELECT * FROM Customers
WHERE CustomerName LIKE 'b%s';
亲自试一试 »

包含

要返回包含特定字母或短语的记录,请添加%字母或短语之前和之后。

示例

返回包含短语“or”的所有客户

SELECT * FROM Customers
WHERE CustomerName LIKE '%or%';
亲自试一试 »

组合通配符

任何通配符,例如%_, 可以与其他通配符结合使用。

示例

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

SELECT * FROM Customers
WHERE CustomerName LIKE 'a__%';
亲自试一试 »

示例

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

SELECT * FROM Customers
WHERE CustomerName LIKE '_r%';
亲自试一试 »

没有通配符

如果未指定通配符,则该短语必须具有完全匹配才能返回结果。

示例

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

SELECT * FROM Customers
WHERE Country LIKE 'Spain';
亲自试一试 »

通过练习测试一下

练习:

选择所有记录,其值City列以字母 "a" 开头。

SELECT * FROM Customers
;

开始练习