今天遇到了一个小问题啊,有数据库里有的东西要替换一下,其实是挺简单记录也不是很多啊,也许手动也能完成,但我是写程序怎么可以忍受有规律的事不用程序 来完成竟然去手动完成呢
我用的数据库是sql server 2005
先简单的介绍一下问题
要更新的字段是 upname 这的值是当前记录ID的下一条记录的 monstername 挺简单的吧,就是这样的
刚开始我写的sql语句是这样的
update dccwms_troops set upname=(select monstername from dccwms_troops A where A.id=id+1) where id % 2 =1
这根本是不行的因为A.id=id+1 还是A中的ID啊,这是我想到个update表也建个别名于是sql语句如下
update dccwms_troops B set upname=(select monstername from dccwms_troops A where A.id=B.id+1) where id % 2 =1
唉还是有错误B附进有语法错误啊
自己是想不出什么办 法了,就上网查了,找到也有跟我第二种写法一样的,真是奇怪有错误的也随便放上来啊,无意用看到了update 还可以用from 这时我突然想from后不就可以加表的别名的,那么应该就可以,哈哈
于是写下sql如下
update B set upname=(select monstername from dccwms_troops A where A.id=B.id+1) from dccwms_troops B where id % 2 =1
支持成功,哈哈成功,稍微有点错误自己调整一下就完成了,主要是id大于 126后的不需要这样处理了
update 子查询
最新推荐文章于 2024-03-27 19:27:10 发布