在SQL中,LIKE
操作符用于在WHERE
子句中搜索具有特定模式的列。LIKE
操作符可以与通配符一起使用,以便在搜索时执行模式匹配。以下是一些常用的通配符及其用法:
-
%
(百分号):表示任意数量的字符(包括零个字符)。例如,LIKE '%abc'
将匹配任何包含"abc"的字符串。 -
+
(加号):表示一个或多个字符。例如,LIKE 'a+b'
将匹配任何以"ab"开头的字符串。 -
?
(问号):表示一个字符。例如,LIKE '?b'
将匹配任何以任意字符开头,后面跟着"b"的字符串。 -
[list]
:表示方括号内的任意一个字符。例如,LIKE '[abc]'
将匹配任何包含方括号内的任意一个字符的字符串。 -
[!list]
:表示不在方括号内的任意一个字符。例如,LIKE '[!abc]'
将匹配任何不包含方括号内的任意一个字符的字符串。 -
{m,n}
:表示重复m到n次。例如,LIKE 'a{2,3}'
将匹配"aa"或"aaa"。 -
{m,n}?
:表示重复m到n次,但只出现一次。例如,LIKE '{2,3}?'
将匹配"a"或"aa"。
以下是一些使用LIKE
操作符和通配符的示例:
- 查找所有以"A"开头的字符串:
SELECT * FROM table_name WHERE column_name LIKE 'A%'
- 查找所有长度为3的字符串:
SELECT * FROM table_name WHERE column_name LIKE '__'
- 查找所有包含"abc"的字符串:
SELECT * FROM table_name WHERE column_name LIKE '%abc%'
- 查找所有以"a"开头,后面跟着一个任意字符,再跟着"b"的字符串:
SELECT * FROM table_name WHERE column_name LIKE 'a?b'
- 查找所有包含"ab"或"bc"的字符串:
SELECT * FROM table_name WHERE column_name LIKE '%ab%' OR column_name LIKE '%bc%'