0

重複している可能性のあるテーブルの値を更新しようとしていますが、エラーを回避するためにそれらの重複を回避したいと考えています。

テーブル:

TicketID : UserID
  0      :   1
  0      :   5
  0      :   6
  1      :   4
  1      :   5

私がやろうとしているのは、すべてのチケット IDthat = 0,を の値に更新することです1。ご覧のとおり1 : 5、競合を引き起こす値が既に存在します。試してみmerge, insert intoましwhereたが、潜在的に存在する行の更新を無視するクエリを取得できません。

更新後、残り0 : 5は更新されないため手動で削除します。マージでそれができると思っていましたが、機能しませんでした

4

2 に答える 2

0

以下のようにしてみてください。それはあなたを助ける..

UPDATE TABLENAME
SET TicketID = 1
WHERE TicketID = 0 AND UserID Not IN(SELECT distinct UserID FROM TABLENAME 
WHERE TicketID=1)

DELETE FROM TABLENAME WHERE TicketID = 0
于 2013-04-12T17:22:36.327 に答える