Re: [SQL ] 兩筆紀錄裡面的欄位值互換

看板Database作者 (whatsAcc)時間10年前 (2013/10/18 20:39), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《qazwsx2013 (sam)》之銘言: : 有一個疑問,請問一下各位 : 以下是我的test資料表 : id (主鍵), pid(唯一鍵) : 我想做的是透過一句sql將兩筆記錄的pid值互換, : sql="UPDATE test t1, test t2 SET t1.pid=t2.pid, t2.pid=t1.pid : WHERE t1.pid=1 AND t2.pid=2"; : 但碰到問題是因為[ pid是唯一鍵 ],所以當更新其中一筆記錄時,就會造成pid重複, : 想請問有沒有方法可以達成一句sql將兩筆記錄的pid值互換, : 感謝 DECLARE @t1 int DECLARE @t2 int -- 暫存 SET @t1=(SELECT pid FROM test WHERE id=1) SET @t2=(SELECT pid FROM test WHERE id=2) UPDATE test SET pid=0 WHERE id=1 --用一個不存在的值先替代再交換 UPDATE test SET pid=@t1 WHERE id=2 UPDATE test SET pid=@t2 WHERE id=1 SELECT id, pid FROM test -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.36.3.228
文章代碼(AID): #1IOIlibY (Database)
文章代碼(AID): #1IOIlibY (Database)