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 操作符的所有内容。