SELECT
column1,column2,...
FROM
table_name
WHERE
(expr|column_1) IN ('value1','value2',...);
首先,MySQL根据column_1的类型或expr表达式的结果来计算值。第二步,MySQL排序值。第三步,MySQL使用二进制搜索算法搜索值。因此,使用具有常量列表的IN运算符的查询将执行得非常快。
MySQL IN与子查询IN运算符通常用于子查询。子查询不提供常量值列表,而是提供值列表。
我们来看看两张表:orders和orderDetails表的结构以及它们之间的关系:
例如,如果要查找总金额大于60000的订单,则使用IN运算符查询如下所示
SELECT
orderNumber, customerNumber, status, shippedDate
FROM
orders
WHERE
orderNumber IN (SELECT
orderNumber
FROM
orderDetails
GROUP BY orderNumber
HAVING SUM(quantityOrdered * priceEach) > 60000);原文出自【易百教程】,商业转载请联系作者获得授权,非商业请保留原文链接:https://www.yiibai.com/mysql/sql-in.html