Mysql 简明教程

MySQL - WHERE Clause

MySQL WHERE Clause

我们知道 SQL SELECT 命令用于从 MySQL 表中获取记录。除此之外,我们还可以将称为 WHERE Clause 的条件子句与 SELECT 语句结合使用来过滤结果。使用此 WHERE 子句,我们可以指定选择条件以从表中选择所需的记录。

WHERE 子句的工作方式类似于任何编程语言中的 if condition 。此子句用于将给定值与 MySQL 表中可用的字段值进行比较。如果外部的给定值等于 MySQL 表中可用的字段值,则它会返回该行。

Operators Used in WHERE Clause

以下是可用在 WHERE 子句中的比较运算符的列表。

  1. =: 检查两个操作数的值是否相等,如果相等,则条件变为真。

  2. !=: 检查两个操作数的值是否相等,如果值不相等,则条件变为真。

  3. >: 检查左操作数的值是否大于右操作数的值,如果大于,则条件变为真。

  4. <: 检查左操作数的值是否小于右操作数的值,如果小于,则条件变为真。

  5. >=: 检查左操作数的值是否大于或等于右操作数的值,如果大于或等于,则条件变为真。

  6. ⇐: 检查左操作数的值是否小于或等于右操作数的值,如果小于或等于,则条件变为真。

此外,WHERE 子句还可包含逻辑运算符,如 AND、OR 和 NOT。

  1. AND: 如果在带有两个条件的 WHERE 子句中使用了 AND 运算符,只有当满足这两个条件时,查询才会返回真。

  2. OR: 如果在带有两个条件的 WHERE 子句中使用了 OR 运算符,只有当满足这两个条件中的任何一个时,查询才会返回真。

  3. NOT: 如果在带有条件的 WHERE 子句中使用了 NOT 运算符,只有当表记录不满足该条件时,查询才会返回真。

Fetching Data Using Where Clause

当您想要从表中获取所选行时,WHERE 子句非常有用,尤其是在使用 MySQL Join 时。联接将在另一章中讨论。

如果给定条件与表中的任何记录都不匹配,则该查询将不会返回任何行。

Syntax

以下是带有 WHERE 子句的 SELECT 命令的通用 SQL 语法,用于从 MySQL 表中获取数据:

SELECT field1, field2,...fieldN table_name1, table_name2...
[WHERE condition1 [AND [OR]] condition2.....
  1. 您可以使用一个或多个以逗号分隔的表,以使用 WHERE 子句包含各种条件,但 WHERE 子句是 SELECT 命令的可选部分。

  2. 您可以使用 WHERE 子句指定任何条件。

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

  4. WHERE 子句还可以与 DELETE 或 UPDATE SQL 命令一起用于指定条件。

Example

首先,让我们使用以下查询创建一个名为 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 表 −

现在,让我们使用 MySQL WHERE 子句结合 SELECT 语句,获取 AGE 大于 23 的 CUSTOMERS:

Select * From CUSTOMERS Where AGE > 23;

Output

以下是记录:

WHERE Clause Using a Client Program

除了使用 MySQL Where 子句来从表中获取选定的行,我们还可以使用 PHP、Node.js、Java 和 Python 等客户端程序来实现相同的结果。

Syntax

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

Example

以下是这些程序 −