sql like 4 months ago
SQL 中的 LIKE
操作符用于在 WHERE
子句中搜索列中的指定模式。它通常与通配符一起使用,以便更灵活地匹配字符串。以下是 LIKE
的详细用法和说明:
基本语法
SELECT column1, column2, ...
FROM table_name
WHERE columnN LIKE pattern;
通配符
LIKE
操作符通常与以下两种通配符一起使用:
1. %
:表示零个、一个或多个字符。
2. _
:表示单个字符。
示例说明
%
通配符'a%'
:匹配以字母 “a” 开头的任何字符串。'%a'
:匹配以字母 “a” 结尾的任何字符串。'%a%'
:匹配任何位置包含字母 “a” 的字符串。'a%b'
:匹配以 “a” 开头并以 “b” 结尾的字符串。
_
通配符'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 |
- 查找以 “J” 开头的客户名称
SELECT * FROM Customers
WHERE CustomerName LIKE 'J%';
结果:
CustomerID | CustomerName | City |
---|---|---|
1 | John Doe | New York |
2 | Jane Smith | Los Angeles |
- 查找包含 “ohn” 的客户名称
SELECT * FROM Customers
WHERE CustomerName LIKE '%ohn%';
结果:
CustomerID | CustomerName | City |
---|---|---|
1 | John Doe | New York |
3 | Alice Johnson | Chicago |
- 查找客户名称第二个字母是 “o” 的记录
SELECT * FROM Customers
WHERE CustomerName LIKE '_o%';
结果:
CustomerID | CustomerName | City |
---|---|---|
1 | John Doe | New York |
4 | Bob Brown | Houston |
- 查找以 “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 查询中进行模式匹配。通过结合通配符 %
和 _
,可以实现灵活的字符串匹配。