SQL语句中 in和or的区别

 我来答
仁昌爱娱乐
高粉答主

2020-01-07 · 专注关心娱乐
仁昌爱娱乐
采纳数:760 获赞数:459813

向TA提问 私信TA
展开全部

SQL语句中 in和or的区别为:操作不同、适合不同、执行效率不同。

一、操作不同

1、in:in是把父查询表和子查询表作hash连接。

2、or:or是对父查询表作loop循环,每次loop循环再对子查询表进行查询。

二、适合不同

1、in:in适合用于子查询表数据比父查询表数据多的情况。

2、or:or适合用于子查询表数据比父查询表数据少的情况。

三、执行效率不同

1、in:在没有索引的情况下,随着in后面的数据量越多,in的执行效率不会有太大的下降。

2、or:在没有索引的情况下,随着or后面的数据量越多,or的执行效率会有明显的下降。

noitlr
2010-03-04 · TA获得超过4140个赞
知道小有建树答主
回答量:1772
采纳率:0%
帮助的人:1449万
展开全部
in 和 or好象没有太大关系吧。

select id from table where id in (select id from table2)
这句话里 in 的意思就相当于 = 号,但是由于查出的数值可能不止一个,也就是说,会形成多对多的关系,所以用 in 来连接两边。

or的意思就是或者了,两个条件满足任意一个,那么就满足查询条件。
比如 select * from table where id=15 or id=30
那么ID号满足15和30的都将被查询出来。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
华夏日长兴
2010-03-04 · TA获得超过9592个赞
知道大有可为答主
回答量:6305
采纳率:85%
帮助的人:3694万
展开全部
in 就是 or的意思,建议在写sql语句的时候不要用in或者or
除非特别的时候再用,否则会特别影响查询效率
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xianfeng_peng
推荐于2017-11-28 · TA获得超过627个赞
知道小有建树答主
回答量:144
采纳率:0%
帮助的人:89.1万
展开全部
or 是或者 两个条件满足一个就可以

in 用在于包含 比如select * from 表 in (一段语句或者几个值 )
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
犀利的胡茬子
2010-03-04 · TA获得超过663个赞
知道小有建树答主
回答量:853
采纳率:50%
帮助的人:585万
展开全部
select * from [table] where [id] in (1,2)

select * from [table] where [id] = 1 or [id] = 2
找出的东西是一样的 你看有什么区别
or是或的意思
in后面就可以写多个值 把只要等于其中一个值 的记录找出
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式