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的执行效率会有明显的下降。
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的都将被查询出来。
in 就是 or的意思,建议在写sql语句的时候不要用in或者or
除非特别的时候再用,否则会特别影响查询效率
or 是或者 两个条件满足一个就可以
in 用在于包含 比如select * from 表 in (一段语句或者几个值 )
select * from [table] where [id] in (1,2)
和
select * from [table] where [id] = 1 or [id] = 2
找出的东西是一样的 你看有什么区别
or是或的意思
in后面就可以写多个值 把只要等于其中一个值 的记录找出