Mysql 简明教程

MySQL - LIKE Operator

MySQL LIKE Operator

MySQL 数据库中的 LIKE 运算符是一个逻辑运算符,用于根据指定模式从表中检索数据。

以非常基本的方式过滤和搜索表中的某些记录是使用 WHERE 子句。详细来说,只要我们想搜索精确匹配,带有“等于”号 (=) 的 WHERE 子句就能很好地工作。但可能需要筛选出表中值具有特定模式的所有结果。这可以通过在 WHERE 子句中使用 LIKE 运算符来处理。

LIKE 运算符通常与一个模式一起使用。但是,此模式(例如记录开头或结尾)的位置是通过一些称为通配符的字符决定的。如果没有通配符字符,则 LIKE 运算符与 WHERE 子句中的等于 (=) 符号完全相同。

Syntax

以下是 MySQL 中 LIKE 运算符的基本语法 -

SELECT column_name(s) FROM table_name
WHERE column_name LIKE [condition];
  1. 您可以使用 WHERE 子句指定任何条件。

  2. 您可以在 WHERE 子句中使用 LIKE 运算符。

  3. 您可以在 equals to 符号代替 LIKE 运算符。

  4. 当 LIKE 与 % 符号一起使用时,它将像元字符搜索一样工作。

  5. 您可以使用 ANDOR 运算符指定多个条件。

  6. WHERE…​LIKE 子句还可以用于 DELETE 或 UPDATE SQL 命令中以指定条件。

Using LIKE Operator with Wildcards

通配符是在 SQL 查询中用于匹配数据中模式的特殊字符。以下是在 LIKE 运算符中结合使用的四个通配符 -

Note− 在 LIKE 运算符中,上述通配符字符可以单独使用,也可以相互组合。两个主要使用的通配符字符是 '%''_'

Example

在下面的查询中,我们使用 CREATE 语句创建名为 CUSTOMERS 的表 -

CREATE TABLE CUSTOMERS (
   ID INT NOT NULL,
   NAME VARCHAR (20) NOT NULL,
   AGE INT NOT NULL,
   ADDRESS CHAR (25),
   SALARY DECIMAL (18, 2),
   PRIMARY KEY (ID)
);

下面的查询将 7 条记录插入上述创建的表中 -

INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY) VALUES
(1, 'Ramesh', 32, 'Ahmedabad', 2000.00 ),
(2, 'Khilan', 25, 'Delhi', 1500.00 ),
(3, 'Kaushik', 23, 'Kota', 2000.00 ),
(4, 'Chaitali', 25, 'Mumbai', 6500.00 ),
(5, 'Hardik', 27, 'Bhopal', 8500.00 ),
(6, 'Komal', 22, 'Hyderabad', 4500.00 ),
(7, 'Muffy', 24, 'Indore', 10000.00 );

执行以下查询以从 CUSTOMERS 表中获取所有记录 −

Select * From CUSTOMERS;

以下为 CUSTOMERS 表 −

现在,我们使用带通配符的 LIKE 运算符检索以“esh”结尾的客户的名称 -

SELECT * from CUSTOMERS WHERE NAME LIKE '%esh';

Output

以上查询的输出如下所示:

Using LIKE Operator with AND/OR Operators

在 MySQL 中,我们还可以使用 LIKE 运算符与多个字符串模式,通过使用 ANDOR 运算符来选择行。

Syntax

以下是使用 LIKE 运算符与 AND/OR 运算符的基本语法 -

SELECT column_name(s)
FROM table_name
WHERE column1 LIKE pattern1 [AND|OR] column2
LIKE pattern2 [AND|OR] ...;

Example

以下查询检索名称以 'M''R' 开头的客户 -

SELECT * FROM CUSTOMERS
WHERE Name LIKE 'M%' OR Name LIKE 'R%';

Output

以下为 CUSTOMERS 表 −

Using NOT Operator with LIKE Operator

我们可以在 LIKE 运算符中结合使用 NOT 运算符,以提取不包含搜索模式中提供的特定字符串的行。

Syntax

以下是 SQL 中 NOT LIKE 运算符的基本语法 −

SELECT column1, column2, ...
FROM table_name
WHERE column1 NOT LIKE pattern;

Example

在下面的查询中,我们正在检索所有名称不以 K 开头的客户 -

SELECT * FROM CUSTOMERS WHERE Name NOT LIKE 'K%';

输出如下:

Example

如果搜索模式与提供的字符串完全相同,则该运算符返回 1 -

SELECT 'Tutorialspoint' LIKE 'Tutorialspoint';

输出如下:

如果搜索模式与字符串不完全相同,则返回 0 作为输出 -

SELECT 'Tutorialspoint' LIKE 'Tutorial';

输出如下:

Example

如果任何两个第一个操作数为 NULL,该操作符将返回 NULL。

SELECT NULL LIKE 'value';

以上程序的输出如下所示:

此处,我们向搜索模式操作数提供 NULL。

SELECT 'Tutorialspoint' LIKE NULL;

输出如下:

Client Program

除了使用 MySQL LIKE 操作符基于指定模式过滤和搜索表中的某些记录外,我们也可以使用 Node.js、PHP、Java 和 Python 等客户端程序来获取相同的结果。

Syntax

以下是此操作在各种编程语言中的语法 −

Example

以下是这些程序 −