1. 程式人生 > >Mysql兩列值互換

Mysql兩列值互換

如圖,表中有兩列值,現在要把兩列的值做交換,怎麼寫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;