什么是 MySQL WHERE 子句?
MySQL WHERE 子句用来过滤掉不需要的数据,只返回符合条件的数据记录。WHERE 子句可以使用单个列,也可以使用多个列。单个列的使用比较简单,但是当需要同时使用多个列的时候,很多人就会感到困惑。本文针对MySQL WHERE 子句中如何使用两个列进行条件筛选做详细介绍。
使用单个列进行条件筛选
在MySQL中,可以使用 WHERE 子句在 SELECT 语句中筛选数据。使用单个列进行条件筛选非常简单,例如我们有一个名为 employees 的表,存储了员工的信息(编号,姓名,工资等)。现在我们需要筛选出工资大于5000的员工信息,可以使用如下语句进行筛选:
SELECT * FROM employees
WHERE salary>5000;
在上面的语句中,WHERE 后面的 salary>5000 就是筛选条件,只有工资大于5000的员工信息才会被 SELECT 语句返回。
使用两个列进行条件筛选
当使用两个或两个以上的列进行条件筛选时,需要使用 AND 或 OR 操作符连接多个条件。在 MySQL 中,AND 和 OR 操作符都可以连接两个条件,但是它们的逻辑是不同的。AND 操作符要求两个条件都满足,才会返回数据记录;OR 操作符只要求一个条件满足就可以返回数据记录。现在我们假设需要筛选出工资在5000到10000之间的员工信息,可以使用如下语句:
SELECT * FROM employees
WHERE salary>5000 AND salary<10000;
在上面的语句中,AND 操作符连接了两个条件,第一个条件要求工资大于5000,第二个条件要求工资小于10000。只有同时满足这两个条件的员工信息才会被 SELECT 语句返回。
当然,也可以使用 OR 操作符进行条件筛选,下面是一个例子:
SELECT * FROM employees
WHERE salary<5000 OR salary>10000;
在上面的语句中,OR 操作符连接了两个条件,第一个条件要求工资小于5000,第二个条件要求工资大于10000。只要这两个条件中有一个被满足,就可以把员工信息返回。
使用两个列同时进行条件筛选
除了使用单个列和多个列分别进行条件筛选以外,还可以使用两个列同时进行条件筛选,方法是把两个列的值放在一个条件中进行比较。假如我们需要筛选出工资在5000到10000之间,同时部门编号为3的员工信息,可以使用如下语句:
SELECT * FROM employees
WHERE salary>5000 AND salary<10000 AND department_id=3;
在上面的语句中,使用了两个 AND 操作符连接了三个条件,第一个条件要求工资大于5000,第二个条件要求工资小于10000,第三个条件要求部门编号为3。只有同时满足这三个条件的员工信息才会被 SELECT 语句返回。
使用 IN 操作符进行条件筛选
除了使用 AND 和 OR 操作符进行条件连接以外,还可以使用 IN 操作符进行条件筛选。IN 操作符可以用来实现多个条件之间的“或”关系,也可以用来代替多个 OR 操作符连接的条件。下面是一个例子:
SELECT * FROM employees
WHERE department_id IN (3,4);
在上面的语句中,使用了 IN 操作符连接了两个条件,要求部门编号为3或者4的员工信息都可以被 SELECT 语句返回。
总结
MySQL WHERE 子句可以用来筛选数据,可以使用单个列,也可以使用多个列。当使用两个或两个以上的列进行条件筛选时,需要使用 AND 或 OR 操作符连接多个条件。另外,IN 操作符也可以用来实现多个条件之间的“或”关系,或者代替多个 OR 操作符连接的条件。