Scott

sql like 4 months ago

sql
2374个字符
共有62人围观

SQL 中的 LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。它通常与通配符一起使用,以便更灵活地匹配字符串。以下是 LIKE 的详细用法和说明:

基本语法

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

通配符

LIKE 操作符通常与以下两种通配符一起使用: 1. %:表示零个、一个或多个字符。 2. _:表示单个字符。

示例说明

  1. % 通配符

    • 'a%':匹配以字母 “a” 开头的任何字符串。
    • '%a':匹配以字母 “a” 结尾的任何字符串。
    • '%a%':匹配任何位置包含字母 “a” 的字符串。
    • 'a%b':匹配以 “a” 开头并以 “b” 结尾的字符串。
  2. _ 通配符

    • 'a_':匹配以 “a” 开头且长度为 2 的字符串。
    • '_a':匹配以 “a” 结尾且长度为 2 的字符串。
    • 'a__b':匹配以 “a” 开头、以 “b” 结尾且长度为 4 的字符串。

示例

假设有一个表 Customers,数据如下:

CustomerID CustomerName City
1 John Doe New York
2 Jane Smith Los Angeles
3 Alice Johnson Chicago
4 Bob Brown Houston
  1. 查找以 “J” 开头的客户名称
SELECT * FROM Customers
WHERE CustomerName LIKE 'J%';

结果:

CustomerID CustomerName City
1 John Doe New York
2 Jane Smith Los Angeles
  1. 查找包含 “ohn” 的客户名称
SELECT * FROM Customers
WHERE CustomerName LIKE '%ohn%';

结果:

CustomerID CustomerName City
1 John Doe New York
3 Alice Johnson Chicago
  1. 查找客户名称第二个字母是 “o” 的记录
SELECT * FROM Customers
WHERE CustomerName LIKE '_o%';

结果:

CustomerID CustomerName City
1 John Doe New York
4 Bob Brown Houston
  1. 查找以 “n” 结尾的城市
SELECT * FROM Customers
WHERE City LIKE '%n';

结果:

CustomerID CustomerName City
2 Jane Smith Los Angeles
4 Bob Brown Houston

注意事项

  • LIKE 是大小写敏感的(取决于数据库系统)。例如,在 MySQL 中,默认情况下是不区分大小写的,但在 PostgreSQL 中是区分大小写的。
  • 如果需要区分大小写,可以使用 BINARY 关键字(在 MySQL 中)或使用 ILIKE(在 PostgreSQL 中,ILIKE 不区分大小写)。
  • 如果搜索的模式中包含通配符(如 %_),可以使用 ESCAPE 关键字来转义它们。

转义通配符

如果需要在模式中使用通配符作为普通字符,可以使用 ESCAPE 关键字。例如:

SELECT * FROM Customers
WHERE CustomerName LIKE '%\%%' ESCAPE '\';

这将匹配包含 % 字符的字符串。

总结

LIKE 是一个强大的工具,用于在 SQL 查询中进行模式匹配。通过结合通配符 %_,可以实现灵活的字符串匹配。