mysql exists与in 具体区别在哪里

 我来答
流浪云风
2012-09-18 · TA获得超过4315个赞
知道大有可为答主
回答量:1119
采纳率:69%
帮助的人:915万
展开全部
in 是把外表和内表作hash 连接;
exists 是对外表作loop循环,每次loop循环再对内表进行查询。

一直以来认为exists比in效率高的说法是不准确的。
如果查询的两个表大小相当,那么用in和exists差别不大。
如果两个表中一个较小,一个是大表,则子查询表大的用exists,子查询表小的用in。

希望对你有帮助。
TableDI
2024-07-18 广告
VLOOKUP 是 Excel 中一个非常实用的函数,它允许用户在一个区域或表格的首列中查找特定值,并返回同一行中指定列中的值。当进行跨表匹配时,你可以使用 VLOOKUP 函数将两个不同表格中的数据关联起来。通过指定查找值、表格数组、列号... 点击进入详情页
本回答由TableDI提供
ahdung
2012-09-18 · TA获得超过609个赞
知道小有建树答主
回答量:323
采纳率:100%
帮助的人:261万
展开全部
从语义上这俩扯不上关系:
exists判断子查询有无返回
in判断某值是否存在于集合里面

但是有点经验的码农发现这俩在很多场合可以互换:
select * from a where exists (select 1 from b where col = value)
select * from a where value in (select col from b)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式