永发信息网

sql 更新语句问题,请帮忙查看一下是否能更加简单

答案:3  悬赏:0  手机版
解决时间 2021-02-07 01:09
  • 提问者网友:贪了杯
  • 2021-02-06 16:14
需要更新的条件现在是保存在数组里,现在是通过for循环进行一条条更新,可以处理为一条语句就更新完毕不呢?下面是我现在使用的:

shuzu=Array(a1,a2,a3,a4,a5,...),其中a1之类的都是一些字段比如是表ID,每次都不一样
for i=0 to 20
Set rs =server.createobject("adodb.recordset")
sql="select * from [admin] where [admin].t='"&shuzu(i)& "'"
rs.open sql,conn,3,2
if rs("Ddate")=date() then
rs("k")=rs("k")+1
if rs("p")<>"YES" then
rs("h")=1
else
rs("h")=rs("h")+1
end if
else
rs("k")=1
rs("h")=1
end if
rs.update
rs.close
set rs=nothing
next
因为这个使用的很频繁,用for循环感觉要占用cpu多了,使用的是mssql数据库,你有什么方法可以解决使用更低资源消耗的语句进行更新吗?
最佳答案
  • 五星知识达人网友:纵马山川剑自提
  • 2021-02-06 17:52
一条语句就可以了
update admin
set k=(case when Ddate= yourdate then k+1 else 1 end),
h=(case when Ddate=yourdate or p='YES' then h+1 else 1 end) 
where t=yourt
全部回答
  • 1楼网友:酒安江南
  • 2021-02-06 19:43
UPDATE [admin] SET k=1,h=1 WHERe t IN (a1,a2,a3....) AND Ddate<>日期 UPDATE [admin] SET k=k+1,h=CASE p WHEN "YES" THEN h+1 ELSE 1 END WHERe t IN (a1,a2,a3....) AND Ddate=日期
  • 2楼网友:十年萤火照君眠
  • 2021-02-06 19:28

对啊,可以这样写!

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯