sql数据库 while

sql数据库 while,第1张

while(0=0)

begin

select @n =COUNT(*) from tests where score<200

if(@n>0)

update tests set score=score+10 where score<100

else

break

end

select * from tests

这句话本身没有什么问题,可实际情况容易造成死循环,比如有一条数据的score=99,循环执行一次后,此条记录的score=109,这条永远都会满足select @n =COUNT(*) from tests where score<200 使@n>0,但又满足不了update tests set score=score+10 where score<100

这句话中的条件,所以此条记录永远都会被执行if @n>0 这个语句块,不会执行else中的部分,由此造成死循环

肯定是不一样的 首先while是循环 if是判断

while就是只要当rs里还有下一条记录 就会继续执行{}里的东西

if只是判断当前rs指向的这条记录还有没有下一条 有就执行{}里的东西

比如你是要遍历整个rs 就用while 如果只是要对当前记录的下一条做判断处理 就用if;

大概就这样了 还有不懂的可以追问

for是查询所有符合条件的记录。

while是从当前记录开始向下查找符合条件的记录,当遇到不符合条件的记录时,则停止查找,如果当前记录就不符合条件,那么就直接停止查找,不管后面有没有符合条件的记录,都不会找到一条。如用while查询表中性别为“男”的记录,假定记录第1、2、4、5号为“男”,从第1条开始就会查找到第1和第2条记录,如果从第3条开始,就一条也不会找到。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9909905.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存