请问如何用一个SQL同时更新一个表中同一个字段
的多条记录
的值比如说       T1
    A     B    C
    
    1     bb   cc
    2     bbb  ccc
    3     bbbb  cccc我向要更新B字段全部成为'XXX' 当 A字段的值为 (1或者2或者3的时候)就是一个SQL把这个三条全更新了后面的where咋写呢?

解决方案 »

  1.   

    update t1 set b = a
    where a in (1,2,3)
      

  2.   

    楼上的语句跟我写的一样
    不过 提示只更新成功一条
    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]
      

  3.   

    update t1 set b='xxx';条件呢我不是更新全部只要更新一部分啊
      

  4.   

    没有啦,这个提示是说,47行被更新,1 statement是指你执行的这条语句不信你可以在数据库查查看select * from tablename where a in (1,2,3);1楼和你写的都是对的
      

  5.   

    你把你的更新范围说下,
    例如对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’
      

  6.   

    刚才那个笔误 最好一个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 
      

  7.   

    楼主误会了
    1 statement(s)不是一条记录的意思
    你可以查询下修改的结果
    select * from t1 where a in (1,2,3)