MySQL WHERE子句简介
该WHERE
子句允许您指定查询返回的行的搜索条件。以下显示了该WHERE
子句的语法:
1
2
3
4
5
6
|
SELECT
select_list
FROM
table_name
WHERE
search_condition;
|
它search_condition
是使用逻辑运算符的一个或多个谓词的组合AND
,OR
和NOT
。在SQL中,谓词是一个计算结果为true,false或unknown的表达式。
从中table_name
导致search_condition
to evaluate为true的任何行都将包含在最终结果集中。
除了SELECT
语句之外,您还可以使用and 语句中的WHERE
子句指定要更新和删除的行。UPDATE
DELETE
MySQL WHERE
子句示例
我们将使用示例数据库中的 employees
表进行演示。
以下查询查找职位为Sales Rep的员工:
1
2
3
4
5
6
7
8
|
SELECT
lastname,
firstname,
jobtitle
FROM
employees
WHERE
jobtitle = ‘Sales Rep’;
|
即使该WHERE
子句出现在语句的末尾,MySQL 也会WHERE
首先评估子句中的表达式以选择匹配的行。它选择具有作业标题的行 Sales Rep
1
|
jobtitle = ‘Sales Rep’;
|
然后,MySQL从SELECT
子句中的选择列表中选择列。突出显示的区域包含最终结果集中的列和行。
您可以形成一个简单的条件,如上面的查询,或一个将多个表达式与逻辑运算符组合在一起的非常复杂的条件
例如,要在办公室代码1中查找所有销售代表,请使用以下查询:
1
2
3
4
5
6
7
8
9
|
SELECT
lastname,
firstname,
jobtitle
FROM
employees
WHERE
jobtitle = ‘Sales Rep’ AND
officeCode = 1;
|
下表显示了可用于在WHERE
子句中形成过滤表达式的比较运算符。
操作者 | 描述 |
---|---|
= | 等于。几乎可以在任何数据类型中使用它。 |
<>或!= | 不等于。 |
< | 少于。您通常将它与数字和日期/时间数据类型一起使用。 |
> | 比…更棒。 |
<= | 小于或等于 |
> = | 大于或等于 |
以下查询使用不等于(<>)运算符来查找不是销售代表的所有员工:
1
2
3
4
5
6
7
8
|
SELECT
lastname,
firstname,
jobtitle
FROM
employees
WHERE
jobtitle <> ‘Sales Rep’;
|
以下查询查找办公室代码大于5的员工:
1
2
3
4
5
6
7
8
|
SELECT
lastname,
firstname,
officeCode
FROM
employees
WHERE
officecode > 5;
|
以下查询返回办公室代码小于或等于4(<= 4)的员工:
1
2
3
4
5
6
7
8
|
SELECT
lastname,
firstname,
officeCode
FROM
employees
WHERE
officecode <= 4;
|
