Re: [SQL ] 兩筆紀錄裡面的欄位值互換
※ 引述《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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):