《MySql必知必会》读书笔记_数据过滤
7.1、组合 WHERE 子句
操作符,用来联结或改变 WHERE 子句中的子句的关键字。也称为逻辑操作符。
7.1.1、AND 操作符
SELECT prod_id, prod_price, prod_name FROM products WHERE vend_id = 1003 AND prod_price <= 10;
检索由供应商1003制造 且 价格小于等于10美元的所有产品的名称和价格。
7.1.2、OR 操作符
SELECT prod_name, prod_price FROM products WHERE vend_id = 1002 OR vend_id = 1003;
OR 用来表示检索匹配任一给定条件的行。
7.1.3、计算次序
SELECT prod_name, prod_price FROM products WHERE vend_id = 1002 OR vend_id = 1003 AND prod_price >= 10;
理解为:由供应商1003制造的任何价格为10美元以上的产品,或者由供应商1002制造的任何产品,而不管其价格如何。
AND 在计算次序中优先级更高。
7.1.4、IN 操作符
SELECT prod_name, prod_price FROM products WHERE vend_id IN (1002, 1003) ORDER BY prod_name;
<=> SELECT prod_name, prod_price FROM products WHERE vend_id = 1002 OR vend_id = 1003 ORDER BY prod_name;
7.1.5、NOT 操作符
SELECT prod_name, prod_price FROM products WHERE vend_id NOT IN (1002, 1003) ORDER BY prod_name;
匹配1002 和1003 之外供应商的 vend_id。
通配符,用来匹配值的一部分的特殊字符。
搜索模式,由字面值、通配符或两者组合构成的搜索条件。利用通配符可创建比较特定数据的搜索模式。
8.1、LIKE 操作符
8.1.1、百分号(%)通配符
% 表示任何字符出现任意次数。
SELECT prod_id, prod_name FROM products WHERE prod_name LIKE 'jet%';
检索出以词 jet 起头的产品。(区分大小写)
SELECT prod_name FROM products WHERE prod_name LIKE 's%e';
检索以 s 起头以 e 结尾的所有产品。% 代表搜索模式中给定位置的 0 个、1 个 或 多个字符。
8.1.2、下划线(_)通配符
下划线只匹配单个字符而不是多个字符。
SELECT prod_id, prod_name FROM products WHERE prod_name LIKE '_ ton anvil';
与 % 能匹配0个字符不一样,_ 总是匹配一个字符,不能多也不能少。

浙公网安备 33010602011771号