Mysql两列值互换

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hebsun/article/details/83472575

如图,表中有两列值,现在要把两列的值做交换,怎么写SQL?

第一印象:扩展出来一列:cc,然后将bc值给cc。然后ac再更新给bc;然后cc更新到ac;然后删除cc列。

如此一来,太麻烦了。

那么一条SQL怎么改呢?update tb set ac=bc,bc=ac .这样?你会发现两值变成了一样的,失败!!!为啥呢?

如下,执行ac=bc,第一条ba值更新给了ac,此时ac和bc的值是一样的,都是bc的值。然后你又把更新后的ac值(还是bc的值)更新给了bc。所以更新失败。

那用一条SQL怎么写呢?

UPDATE tb t1, tb t2  set t1.ac=t1.bc,t2.bc=t2.ac;

猜你喜欢

转载自blog.csdn.net/hebsun/article/details/83472575