0507 | MySQL | 第 7 章 数据过滤

内容摘要:如何组合 WHERE 子句以建立功能更强的更高级的搜索条件。学习如何使用 NOT 和 IN 操作符。

7.1 组合 WHERE 语句

7.1.1 AND 操作符

    AND:WHERE 子句中的关键字,用来指示检索满足所有给定条件的行。必须同时满足,为“且”的关系。可以添加多个条件,每个条件均需要使用一个 AND 操作符。

SELECT prod_id,prod_price,Prod_name FROM products WHERE vend_id = 1003 AND prod_price <= 10; // 同时满足 vend_id 为 1003 且产品价格小于等于 10 的

7.1.2 OR 操作符

    OR:WHERE 子句中的关键字,检索匹配任一给定条件的行。满足一个即可,为“或”的关系。

SELECT prod_id,prod_price,Prod_name FROM products WHERE vend_id = 1002 OR vend_id = 1003; // vend_id 为 1002 或 1003 均可

7.1.3 计算次序

    AND 和 OR 若组合使用,使用圆括号来明确计算次序。

SELECT prod_id,prod_price,Prod_name FROM products WHERE (vend_id = 1002 OR vend_id = 1003) AND prod_price >= 10;

7.2 IN 操作符

    IN:WHERE 子句中用来指定要匹配值的清单的关键字,功能与 OR 相同。

SELECT prod_id,prod_price,Prod_name FROM products WHERE vend_id IN (1002,1003) AND prod_price = 10; // 这两行完全等价
SELECT prod_id,prod_price,Prod_name FROM products WHERE (vend_id = 1002 OR vend_id = 1003) AND prod_price = 10;

    IN 操作符的优点:
  • 在使用长的合法选项清单时,IN 操作符的语法更清楚且更直观;
  • 使用 IN 时,计算的次序更容易管理(因为使用的操作符更少);
  • IN 操作符一般比 OR 操作符清单执行更快;
  • IN 的最大优点是可以包含其他 SELECT 语句,能够更动态的建立 WHERE 子句。

7.3 NOT 操作符

    NOT:WHERE 子句中用来否定后跟条件的关键字。

SELECT prod_id,prod_price,Prod_name FROM products WHERE vend_id NOT IN (1002,1003) AND prod_price = 10; // 检索所有不是 1002 和 1003 的供应商 id

MySQL 支持使用 NOT 对 IN、BETWEEN 和 EXISTS 子句取反,这与多数其他 DBMS 允许使用 NOT 对各种条件取反有很大差别。(什么差别?)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值