SQL Like – SQL Not Like
时间:2020-02-23 14:32:30 来源:igfitidea点击:
SQL LIKE与WHERE子句一起使用以搜索列的模式。
通配符是用于指定模式的通配符。
LIKE运算符使用两个通配符。
%:百分比用于表示一次,多次或者不出现。
_:下划线用于表示单个字符。
要使用SQL LIKE运算符,我们必须非常确定通配符位置的用法,因为这将定义搜索模式。
SQL Like语法
SQL Like运算符可以与任何带有where子句的查询一起使用。
因此我们可以将其与Select,Delete,Update等一起使用。
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的语法中,"模式"是使用通配符定义的模式。
SQL Like示例
通过一些示例,让我们尝试了解SQL LIKE语句以及通配符的用法。
请考虑以下客户表作为示例。
CustomerId | CustomerName |
---|---|
1 | Amit |
2 | John |
3 | Annie |
- 查找名称以" A"开头的客户名称。
SELECT CustomerName FROM Customer WHERE CustomerName LIKE 'A%';
- 查找名称以" e"结尾的客户名称。
SELECT CustomerName FROM Customer WHERE CustomerName LIKE '%e'
- 查找名称以" A"开头和以" t"结尾的客户名称。
SELECT CustomerName FROM Customer WHERE CustomerName LIKE 'A%t'
- 查找名称在任意位置包含" n"的客户名称。
SELECT CustomerName FROM Customer WHERE CustomerName LIKE '%n%'
- 在第二个位置查找名称包含" n"的客户名称。
SELECT CustomerName FROM Customer WHERE CustomerName LIKE '_n%'
- 查找名称中包含" i"且以" t"结尾的客户名称。
SELECT CustomerName FROM Customer WHERE CustomerName LIKE '__i%t'
SQL Not Like
有时我们想要获取与like模式不匹配的记录。
在这种情况下,我们可以使用sql而不是运算符。
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%';
SQL多个LIKE
SQL查询中可以有多个like语句。
例如,如果我们想要一个以" Jo"和" Am"开头的客户名称列表,则我们将不得不使用多个类似如下的语句。
SELECT CustomerName FROM Customer WHERE CustomerName LIKE 'Am%' OR CustomerName LIKE 'Jo%';