5.2 IN操作符
IN
操作符用来指定条件范围,范围中的每个条件都可以进行匹配。IN
取一组由逗号分隔、括在圆括号中的合法值。下面的例子说明了这个操作符:
输入▼
SELECT prod_name, prod_price
FROM Products
WHERE vend_id IN ( 'DLL01', 'BRS01' )
ORDER BY prod_name;
输出▼
prod_name prod_price
------------------- ----------
12 inch teddy bear 8.9900
18 inch teddy bear 11.9900
8 inch teddy bear 5.9900
Bird bean bag toy 3.4900
Fish bean bag toy 3.4900
Rabbit bean bag toy 3.4900
Raggedy Ann 4.9900
分析▼
此SELECT
语句检索由供应商DLL01
和BRS01
制造的所有产品。IN
操作符后跟由逗号分隔的合法值,这些值必须括在圆括号中。
你可能会猜测IN
操作符完成了与OR
相同的功能,恭喜你猜对了!下面的SQL语句完成与上面的例子相同的工作:
输入▼
SELECT prod_name, prod_price
FROM Products
WHERE vend_id = 'DLL01' OR vend_id = 'BRS01'
ORDER BY prod_name;
输出▼
prod_name prod_price
------------------- ----------
12 inch teddy bear 8.9900
18 inch teddy bear 11.9900
8 inch teddy bear 5.9900
Bird bean bag toy 3.4900
Fish bean bag toy 3.4900
Rabbit bean bag toy 3.4900
Raggedy Ann 4.9900
为什么要使用IN
操作符?其优点为:
- 在有很多合法选项时,
IN
操作符的语法更清楚,更直观。 - 在与其他
AND
和OR
操作符组合使用IN
时,求值顺序更容易管理。 IN
操作符一般比一组OR
操作符执行得更快(在上面这个合法选项很少的例子中,你看不出性能差异)。IN
的最大优点是可以包含其他SELECT
语句,能够更动态地建立WHERE
子句。第11课会对此进行详细介绍。
IN
WHERE
子句中用来指定要匹配值的清单的关键字,功能与OR
相当。