
上QQ阅读APP看书,第一时间看更新
7.2 IN操作符
括号在WHERE子句中还有另一种不同的用法。IN操作符用来指定一组条件,只要匹配其中任何一个条件即可。IN用逗号隔开括号中列出的所有合法值。看下面的例子:
▼ 输入

▼ 输出
▼ 分析
SELECT语句检索所有由供应商1002和供应商1003提供的商品。IN操作符后面跟着由逗号隔开的合法值列表,整个列表需要用括号括起来。
如果你觉得IN和OR操作符具有完全相同的功能,没错。下面的SQL语句与上面的例子完成同样的功能:
▼ 输入

▼ 输出

为什么使用IN操作符呢?其优点如下:
·当你使用很长的值列表选项时,IN操作符语法更清晰易读。
·使用IN操作符更容易管理优先级顺序(由于使用更少的操作符)。
·IN操作符几乎总是比一系列OR操作符执行得快(尽管在很短的列表项无法察觉出性能的不同,就像这里使用的)。
·IN操作符最大的优势是可以包含SELECT语句,可以让你创建较为动态的WHERE子句。我们在第14章再探索细节。
新术语
IN 一个用在WHERE子句中的关键字,用来指定一系列使用OR进行匹配的值。