IN运算符简介
语法:
SELECT
column1,column2,...
FROM
table_name
WHERE
(expr|column_1) IN ('value1','value2',...);
IN运算符逻辑是:column 在指定列表中则返回1 ,不在其中则返回0。
当列表中的值都是常量时,MySQL执行以下步骤:
- 首先,评估基于所述值类型column_1所述的或expr 表达的结果。
- 然后,对值进行排序。
- 最后,使用二进制搜索算法搜索值。
因此,使用IN运算符查询执行带有常量列表的速度非常快。
注意:如果expr列表中的任何值NULL,则IN运算符返回NULL。
IN与子查询一起使用的实例
子查询从一个或多个表中获取值列表,并将它们用作IN运算符的输入值。
orders和orderDetails表的字段如下,找到总价值大于60,000的订单。
+----------------+
| orders |
+----------------+
| orderNumber |
| orderDate |
| requiredDate |
| shippedDate |
| status |
| comments |
| customerNumber |
+----------------+
+-----------------+
| order