oracle一次(一个SQL)更新多条记录

l_dongdong 2009-08-12 07:32:34
请问如何用一个SQL同时更新一个表中同一个字段
的多条记录
的值

比如说

T1
A B C

1 bb cc
2 bbb ccc
3 bbbb cccc

我向要更新B字段全部成为'XXX' 当 A字段的值为 (1或者2或者3的时候)

就是一个SQL把这个三条全更新了

后面的where咋写呢?
...全文
808 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
小灰狼W 2009-08-13
  • 打赏
  • 举报
回复
楼主误会了
1 statement(s)不是一条记录的意思
你可以查询下修改的结果
select * from t1 where a in (1,2,3)
l_dongdong 2009-08-13
  • 打赏
  • 举报
回复
呵呵 丢人了 是更新成功的意思,谢谢各位!
ssj125 2009-08-12
  • 打赏
  • 举报
回复
刚才那个笔误 最好一个2 改成3
update t1 set b = ‘XXX’ where a in (1,2,3) 或者试试 update t1 set b = ‘XXX’ where a = 1 or a= 2 or a= 2
ssj125 2009-08-12
  • 打赏
  • 举报
回复
看到了没 我日
ssj125 2009-08-12
  • 打赏
  • 举报
回复
你把你的更新范围说下,
例如对A在1,2,3的范围内记录进行更新, 如果这样的sql就是
update t1 set b = ‘XXX’ where a in (1,2,3) 或者试试 update t1 set b = ‘XXX’ where a = 1 or a= 2 or a= 2
如果没范围限制 则sql如下
update t1 set b = ‘XXX’
shiyiwan 2009-08-12
  • 打赏
  • 举报
回复
没有啦,这个提示是说,47行被更新,1 statement是指你执行的这条语句

不信你可以在数据库查查看

select * from tablename where a in (1,2,3);

1楼和你写的都是对的
[Quote=引用 2 楼 l_dongdong 的回复:]
楼上的语句跟我写的一样
不过 提示只更新成功一条


19:41:26  [UPDATE - 47 row(s), 0.047 secs]  Command processed
... 1 statement(s) executed, 47 row(s) affected, exec/fetch time: 0.047/0.000 sec [1 successful, 0 warnings, 0 errors]
[/Quote]
l_dongdong 2009-08-12
  • 打赏
  • 举报
回复
sjj呢
l_dongdong 2009-08-12
  • 打赏
  • 举报
回复
难道是我提示信息看错了??
这个提示就是全部更新完毕??
l_dongdong 2009-08-12
  • 打赏
  • 举报
回复
update t1 set b='xxx';

条件呢

我不是更新全部

只要更新一部分啊
priwilliam 2009-08-12
  • 打赏
  • 举报
回复
update t1 set b='xxx';
l_dongdong 2009-08-12
  • 打赏
  • 举报
回复
楼上的语句跟我写的一样
不过 提示只更新成功一条


19:41:26 [UPDATE - 47 row(s), 0.047 secs] Command processed
... 1 statement(s) executed, 47 row(s) affected, exec/fetch time: 0.047/0.000 sec [1 successful, 0 warnings, 0 errors]
zuzuou 2009-08-12
  • 打赏
  • 举报
回复
update t1 set b = a
where a in (1,2,3)

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧