一:组合WHERE子句
/* 为了进行更强的过滤控制,MySQL允许给出多个WHERE子句。这些子句可以进行两种方式使用:以AND子句的方式或OR子句的方式使用。 操作符:用来联结或改变WHERE子句中的子句的关键字。也称为逻辑操作符。 */
二:AND操作符
/* 为了通过不止一个列进行过滤,可以使用AND操作符给WHERE子句附加条件。 AND :用在WHERE子句中的关键字,用来指示检索满足所有给定的条件的行。 此SQL语句检索由供应商1003制造且价格小于等于10美元的所有产品的名称和价格。 */ SELECT prod_id,prod_price,prod_name FROM products WHERE vend_id = 1003 AND prod_price <= 10;
三:OR操作符
/* OR操作符:它指示MySQL检索匹配任一条件的行。 OR操作符告诉DBMS匹配任一条件而不是同时匹配两个条件。 */ SELECT prod_name,prod_price FROM products WHERE vend_id = 1002 OR vend_id = 1003;
四;计算次序
/* 供应商1003制造的任何价格为10美元(含)以上的产品,或由供应商1002制造的任何产品,而不管其价格如何。 */ SELECT prod_name,prod_price FROM products WHERE vend_id = 1002 OR vend_id = 1003 AND prod_price >=10; /* 供应商1002或1003制造的任何价格为10美元(含)以上的产品。 */ SELECT prod_name,prod_price FROM products WHERE (vend_id = 1002 OR vend_id = 1003) AND prod_price >=10;
五:IN操作符
/* 圆括号在WHERE子句中还有另一种用法。IN操作符用来指定条件范围,范围中的每个条件都可以进行匹配 IN :WHERE子句中用来指定要匹配值的清单的关键字,功能与OR相当。 */ SELECT prod_name,prod_price FROM products WHERE vend_id IN (1002,1003) ORDER BY prod_name;
六:NOT操作符
/* WHERE子句的NOT操作符有且只有一个功能,那就是否定它之后所跟的任何条件。
MySQL中支持使用NOT对IN、BETWEEN、EXISTS子句取反。 */ SELECT prod_name,prod_price FROM products WHERE vend_id NOT IN(1002,1003) ORDER BY prod_name;