5.2 IN操作符

IN操作符用来指定条件范围,范围中的每个条件都可以进行匹配。IN取一组由逗号分隔、括在圆括号中的合法值。下面的例子说明了这个操作符:

输入▼

  1. SELECT prod_name, prod_price
  2. FROM Products
  3. WHERE vend_id IN ( 'DLL01', 'BRS01' )
  4. ORDER BY prod_name;

输出▼

  1. prod_name prod_price
  2. ------------------- ----------
  3. 12 inch teddy bear 8.9900
  4. 18 inch teddy bear 11.9900
  5. 8 inch teddy bear 5.9900
  6. Bird bean bag toy 3.4900
  7. Fish bean bag toy 3.4900
  8. Rabbit bean bag toy 3.4900
  9. Raggedy Ann 4.9900

分析▼

SELECT语句检索由供应商DLL01BRS01制造的所有产品。IN操作符后跟由逗号分隔的合法值,这些值必须括在圆括号中。

你可能会猜测IN操作符完成了与OR相同的功能,恭喜你猜对了!下面的SQL语句完成与上面的例子相同的工作:

输入▼

  1. SELECT prod_name, prod_price
  2. FROM Products
  3. WHERE vend_id = 'DLL01' OR vend_id = 'BRS01'
  4. ORDER BY prod_name;

输出▼

  1. prod_name prod_price
  2. ------------------- ----------
  3. 12 inch teddy bear 8.9900
  4. 18 inch teddy bear 11.9900
  5. 8 inch teddy bear 5.9900
  6. Bird bean bag toy 3.4900
  7. Fish bean bag toy 3.4900
  8. Rabbit bean bag toy 3.4900
  9. Raggedy Ann 4.9900

为什么要使用IN操作符?其优点为:

  • 在有很多合法选项时,IN操作符的语法更清楚,更直观。
  • 在与其他ANDOR操作符组合使用IN时,求值顺序更容易管理。
  • IN操作符一般比一组OR操作符执行得更快(在上面这个合法选项很少的例子中,你看不出性能差异)。
  • IN的最大优点是可以包含其他SELECT语句,能够更动态地建立WHERE子句。第11课会对此进行详细介绍。

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