2、有差别的在于条件字段是索引字段时:

“=”在索引的情况下都会进行索引扫描,所以效率总是高的。

“like”当模糊查询为右模糊,比如'abc%'时,扫描索引,高效。当模糊查询含左模糊时,比如'%abc',进行全表扫描,低效。

“in”的作用等同于or,也是进行索引扫描,高效。

另外,“in”还可以连接查询结果集,这时往往会和exists做比较。

a、select * from t1 where f1 in(select f1 from t2 where t2.fx='x'),其中子查询的where里的条件不受外层查询的影响,这类查询一般情况下,自动优化会转成exist语句,也就是效率和exist一样。

b、select * from t1 where f1 in(select f1 from t2 where t2.fx=t1.fx),其中子查询的where里的条件受外层查询的影响,这类查询的效率要看相关条件涉及的字段的索引情况和数据量多少,一般效率不如exists,数据量大时,效果就更加明显。

为了完成本关任务,你需要掌握:如何使用通配符%模糊匹配数据内容。 在前面的检所操作 ,我们讲述了如何进行比较 查询 或者是范围 查询 ,但如果我们想查找所有包含字符ir的内容该么办呢?用之前的方法好像行不通了。在这里,我们需要用通配符进行匹配查找。而执行匹配查找的关键字就是LIKE。 SQL 语句 支持很多种通配符,其 可以和LIKE一起搭配使用的就是通配符%和_了。 使用通配符%模糊匹配数据内容 百分号通配符 IN为什么慢? 在应用程序 使用子 查询 后, SQL 语句 查询 性能变得非常糟糕。例如: SELECT driver_id FROM driver where driver_id in (SELECT driver_id FROM driver where _create_date > '2016-07-25 00:00:00'); 独立子 查询 返回了符合 条件 的driver_id,这个问题是解决了,... IN子句https://stackoverflow.com/questions/650455/c-sharp-parameterized-query-my sql -with-in-clauseNote: FIND_IN_SET is a my SQL specific function.select * from orderinfobyno where FIND_IN_SET(字段,'5,8')sel... like最差,特别是以%(有的数据库是*)开头的匹配,是无法进行索引的,只有顺序扫描。in和=的本质是一样的, 效率 相同,都是走索引。当然,如果进行判断的那个字段没有建立索引,那么都是顺序查找, 效率 完全一样。 LIKE很差的,速度最慢IN也非常差,IN的本质是N个=, 间用OR连起来万幸的是IN能用EXISTS代替,EXISTS的 效率 比IN提高了不止一点点,我曾经将IN换为EXISTS, 查询 效率 ...     select * from Table where field like '%'+ @paras + '%'    exec('select * from Table where Field in ('+@paras+')') @para 一、指定范围的判断:IN操作符IN操作符表示的是指定一个 查询 的范围,例如,现在有如下一个 查询 要求:范例: 查询 出雇员编号是7369、7566、7799的雇员信息如果按照最早的做法,使用OR操作完成;SELECT * FROM empWHERE empno=7369 OR empno=7566 OR empno=7799;如果现在使用了新的操作符IN的话,则代码简单了;SELECT * FROM em... 上一篇我们介绍了 SQL 各种形式的子 查询 ,以及与子 查询 相关的 IN、ALL、ANY/SOME、EXISTS 运算符。 我们已经学习了两种涉及多个表的 查询 语句 ,今天我们来讨论另一种从多个 查询 返回组合结果的方法:集合运算。 数据库 的表与集合理论 的集合非常类似,表是由行组成的集合。因此, SQL 支持基于行的各种集合操作:并集运算(UNION)、交集运算(INTERSECT)和差集运...