SQL 中等于 后面这能是某一个特定值,而IN 可以是一个结果集。如果结果集只有一个值,时
“=”等价于“IN” ,如果结果集有多个值时,IN 等价于 多个 “=”或。
例如:
col = 'A' 等价于 col IN ('A'),如果这种情况建议使用“=”,如果col 有索引,查询时会使用索引。
col = 'A' or col ='B' or col ='C' 等价于 IN('A','B','C')
比如说student表(ID,学生姓名)
查一个学生
select * from student where 学生姓名='张三'
select * from student where 学生姓 in('张三' )
查二个学生
select * from student where 学生姓名='张三' or 学生姓名='李四'
select * from student where 学生姓 in('张三' ,'李四')
明白了吧。。在于要查的值多少的问题。。多的话少了N-1个OR,如果有AND条件还少了几个括号!!