“exists” 和 “count(*)”的区别??? 仅仅就"判断记录是否存在" 当然是exists效率高exists是一种半连接的方式,就是探测到有记录就返回,就好比你查看某个会议室是否有被人占用,你只需要看看里面有人没有,而不是去把里面的人数一遍,看看有几个人在开会 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 exists (select top 1 * from ... where ...)是不是效率更高? 是滴,在oracle中是select count(*) from tablename where rownum=1的方式来做这个优化的 exists 的效率会高。相同设置的情况下。存在的判断存在短路机制。count没有短路机制。 exists.不过你感觉你比的方向错了.为什么不比exists与top 1的方式,我感觉这两个才有可比性. 几乎所有情况下都是EXISTS效率高,人家是专门干这事的 没感觉着2个有可比性啊。用COUNT(*)判断是否存在 要用相关子查询啊。判断count(*)是否为0 感觉完全没必要啊。 肯定是exists效率高,再打个简单的比方,如果用count(*),还要做一次是否为0的判断 这两个作用放置不同就能比较出特点了,单独看效率肯定existst高,exists可以直接加在判断条件后面,看相应条件是否满足执行语句条件,count(*)可以作为先判断条件,如果满足再单独执行相应语句,一般用count(1) 。 exists在存在性检测领域是专家,count(*)是半路出家 个人觉得在判断是否存在时候也是用exists比较好点,因为count需要统计一遍然后得到结果,exists是直接看表中是否有,然后返回结果 sql 语句 查询订单内有某个产品的订单数 求高手相助 MSSql 2000存储过程 急!怎样将这个MS SERVER功能转化成MY SQL 一个关于SQL查询的问题 远程数据库如何备份? 数据库存储过程问题 SQL语句不会写。 怎样用sql语句导出数据库中的表 oracle 字符集 用 内置的 “函数名” 作为“列的名称” “VarChar()”类型的数据 和 “时间类型、数字类型、布尔类型”的对比?
是不是效率更高?
是滴,在oracle中是select count(*) from tablename where rownum=1的方式来做这个优化的
不过你感觉你比的方向错了.为什么不比exists与top 1的方式,我感觉这两个才有可比性.