日期:2014-05-19  浏览次数:20627 次

加Top和不加Top有什么区别?
sql= "select   *   from   userinfo   where   userid=123456 "

sql= "select   top   1   *   from   userinfo   where   userid=123456 "

set   rs=conn.execute(sql)
if   rs.eof   then  
else
nickname=rs(0)
end   if
rs.close
set   rs=nothing

在都取第一条记录的情况下,加   top   1和不加Top有什么区别

------解决方案--------------------
top 1 非常明确的表明只返回一条纪录

而不加也能会返回多条记录,比如当userid不是主键的时候,搜索到第一条后还会继续找下去

如果userid确定为主键 加与不加top 1是一样的效果
------解决方案--------------------
sql= "select * from userinfo where userid=123456 "

sql= "select top 1 * from userinfo where userid=123456 "
第一条如果userid有多个等于123456,那么它返回的结果不止一条
第二条它只返回一条
------解决方案--------------------
如果只有一条结果的话
------------------------
加top1`
要比不加时,时间长
=====================
完毕!!!
------解决方案--------------------
如果userid是主键或者唯一约束+索引的 那么加不加 应该没有差

如果不是 那么差别就比较明显

加了top 1
找到第一条满足条件的行就返回了
不加TOP 1的就会遍历表所有行