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语句以及通配符的用法。
请考虑以下客户表作为示例。

CustomerIdCustomerName
1Amit
2John
3Annie
  • 查找名称以" 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%';