Skip to main content

SQL Like 与 Not Like 用法

作者 Pankaj

SQL 中的 LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。通配符则用于指定模式。有两个通配符可以和LIKE操作符一起使用: %:百分号用于表示单个、多个或未出现。 _:下划线用于表示单个字符。 要使用SQL 的 LIKE 操作符,必须明确通配符的使用位置,因为它将定义搜索模式。

SQL Like 语法

SQL Like 操作符可以用于任何有where子句的查询,因此我们可以将其用于选择、删除、更新等:

SELECT column FROM table_name WHERE column LIKE pattern;

UPDATE table_name SET column=value WHERE column LIKE pattern;

DELETE FROM table_name WHERE column LIKE pattern;

在上面类似于 sql 的语法中,“模式(pattern)”是通过通配符的使用来定义的。

SQL Like 示例

让我们通过一些例子来了解SQL LIKE语句和通配符的用法。以下面的客户表为例: | 客户编号 | 客户名(CustomerName) | | —— | —— | | 1 | Amit | | 2 | John | | 3 | Annie | (下面是原表格) 客户编号 客户名(CustomerName) 1 Amit 2 John 3 Annie

找到以“A”为开头的客户名:

SELECT CustomerName FROM Customer WHERE CustomerName LIKE 'A%';

输出:Amit Annie 查找以“e”结尾的客户名:

SELECT CustomerName FROM Customer WHERE CustomerName LIKE '%e'

输出:Annie 查找以“A”开头、以“t”结尾的客户名:

SELECT CustomerName FROM Customer WHERE CustomerName LIKE 'A%t'

输出:Amit 查找带有“n”的客户名:

SELECT CustomerName FROM Customer WHERE CustomerName LIKE '%n%'

输出:Annie John 查找名字第二位是“n”的客户名:

SELECT CustomerName FROM Customer WHERE CustomerName LIKE '_n%'

输出:Annie

查找名字第三位是“i”且以“t”结尾的客户名:

SELECT CustomerName FROM Customer WHERE CustomerName LIKE '__i%t'

输出:Amit

SQL Not Like 用法

有时我们想获得与某个 like 模式不匹配的记录。在这种情况下,我们可以使用sql not like操作符。SQL not like 语句的语法如下:

SELECT column FROM table_name WHERE column NOT LIKE pattern;

UPDATE table_name SET column=value WHERE column NOT LIKE pattern;

DELETE FROM table_name WHERE column NOT LIKE pattern;

举个例子,比如说我们想要不以“A”开头的客户名列表。下面的查询将给我们提供所需结果:

SELECT CustomerName FROM Customer WHERE CustomerName NOT LIKE 'A%';

输出:John

使用多个 Like

在 SQL 查询中,我们可以使用多个 like 语句。例如,如果我们想要一个从“Jo”和“Am”为开始的客户名列表,那么我们将不得不使用多个 like 语句,如下所示:

SELECT CustomerName FROM Customer WHERE CustomerName LIKE 'Am%' OR CustomerName LIKE 'Jo%';

以上就是 SQL like 和 not like 操作符的所有内容。