加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的就会遍历表所有行