SQL LIKE 与 WHERE 子句一起使用来搜索列的模式。通配符是用于指定模式的通配符。有两个通配符与 LIKE 运算符一起使用。
-
%:用百分比来表示一次、多次或不出现的情况。
-
_:下划线用于表示单个字符。
To use SQL LIKE operator, we must be very sure of the usage of the wildcard position as that will define the search pattern.
SQL Like 运算符可与任何查询一起使用where 子句。所以我们可以使用它Select, Delete, Update etc.
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;
In the sql与上面提到的语法类似,“模式”是通过使用通配符定义的模式。
让我们尝试通过一些示例来了解 SQL LIKE 语句和通配符的用法。请考虑以下 Customer 表作为示例。
CustomerId |
CustomerName |
1 |
Amit |
2 |
John |
3 |
Annie |
-
查找名称以“A”开头的客户名称。
SELECT CustomerName FROM Customer WHERE CustomerName LIKE 'A%';
Output:阿米特·安妮
-
查找名称以“e”结尾的客户姓名。
SELECT CustomerName FROM Customer WHERE CustomerName LIKE '%e'
Output: Annie
-
查找名称以“A”开头并以“t”结尾的客户名称。
SELECT CustomerName FROM Customer WHERE CustomerName LIKE 'A%t'
Output: Amit
-
查找姓名任意位置包含“n”的客户名称。
SELECT CustomerName FROM Customer WHERE CustomerName LIKE '%n%'
输出:安妮·约翰
-
查找名称第二位包含“n”的客户名称。
SELECT CustomerName FROM Customer WHERE CustomerName LIKE '_n%'
Output: Annie
-
查找名称第三位包含“i”且以“t”结尾的客户名称。
SELECT CustomerName FROM Customer WHERE CustomerName LIKE '__i%t'
Output: Amit
有时我们想要获取与相似模式不匹配的记录。在这种情况下,我们可以使用 sql not like 运算符。 SQL 不像语句语法,如下所示。
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%';
Output: John
SQL 查询中可以有多个 like 语句。例如,如果我们想要一个以“Jo”和“Am”开头的客户名称列表,那么我们将不得不使用多个类似的语句,如下所示。
SELECT CustomerName FROM Customer WHERE CustomerName LIKE 'Am%' OR CustomerName LIKE 'Jo%';
这就是 SQL like 运算符和 SQL not like 运算符示例的全部内容。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)