比如有一张表有两个字段,一个是ID代表帐号,另一个是coin代表金币。
现在有A,B两个帐号,如何用一条update语句实现减去A的金币的同时将这些金币加到B的帐号上。update f set a = x where ... , set b = y where ..好像不是正确的语句

解决方案 »

  1. 应该是如何用一条update语句更新多行。
    误写成了多列。
      

  2. 这个是不能写成一条sql的,可以通过事务保持数据一致性
      

  3. 不能用一条sql啊?
    那最简单的方法该怎么处理呢?就是不想用存储程序才问一下能否一条sql搞定
      

  4. 我只想说一句,在mysql当中,可以一次发送多条sql语句给server端。所以,你安全可以prepare多条sql语句给server端。试试吧。mysql> update t1 set id=123 where id<1; update t1 set id=234 where id>100;
    Query OK, 0 rows affected (0.01 sec)
    Rows matched: 0  Changed: 0  Warnings: 0Query OK, 1 row affected (0.01 sec)
    Rows matched: 1  Changed: 1  Warnings: 0
      


  5. update f set a=if(ID='A',x,a),b=if(ID='B',y,b) where ...
      

类似问题 »