![MariaDB必知必会](https://wfqqreader-1252317822.image.myqcloud.com/cover/943/34339943/b_34339943.jpg)
上QQ阅读APP看书,第一时间看更新
7.2 IN操作符
括号在WHERE子句中还有另一种不同的用法。IN操作符用来指定一组条件,只要匹配其中任何一个条件即可。IN用逗号隔开括号中列出的所有合法值。看下面的例子:
▼ 输入
![](https://epubservercos.yuewen.com/AE5E39/18365861508119506/epubprivate/OEBPS/Images/39b-i.jpg?sign=1739584296-YAlmtQVTJjQNIB8GnXfNjNEWqxXlk7A2-0-de8c9f8a3a02a5a8536358358b5cb8e1)
▼ 输出
▼ 分析
SELECT语句检索所有由供应商1002和供应商1003提供的商品。IN操作符后面跟着由逗号隔开的合法值列表,整个列表需要用括号括起来。
如果你觉得IN和OR操作符具有完全相同的功能,没错。下面的SQL语句与上面的例子完成同样的功能:
▼ 输入
![](https://epubservercos.yuewen.com/AE5E39/18365861508119506/epubprivate/OEBPS/Images/40a-i.jpg?sign=1739584296-inAJhYUq61o1uzewEQUhYK6HbDbI4Uxj-0-41c43173ed00d7273fefaaa9a970b6dc)
▼ 输出
![](https://epubservercos.yuewen.com/AE5E39/18365861508119506/epubprivate/OEBPS/Images/40b-i.jpg?sign=1739584296-E8vkJ685lSlM3GGvVvGLJKzKKjDumbOv-0-999545f04acc9b21acd5086ac26b605d)
为什么使用IN操作符呢?其优点如下:
·当你使用很长的值列表选项时,IN操作符语法更清晰易读。
·使用IN操作符更容易管理优先级顺序(由于使用更少的操作符)。
·IN操作符几乎总是比一系列OR操作符执行得快(尽管在很短的列表项无法察觉出性能的不同,就像这里使用的)。
·IN操作符最大的优势是可以包含SELECT语句,可以让你创建较为动态的WHERE子句。我们在第14章再探索细节。
新术语
IN 一个用在WHERE子句中的关键字,用来指定一系列使用OR进行匹配的值。