2013-07-02 112 views
0

該查詢似乎很容易轉換,因爲我有非常具體的要求,如果它存在只是更新插入。但我真的很難轉換它..可能是因爲它使用多個連接。有一個趕上它,但沒有主鍵。我真的很感激,如果有人採取了一個破解,使我的生活更容易... :-)更改MYSQL查詢更新更換爲

只有三列

ASSET_ASSOCIATION 
----------------- 

ASSET_ID | ASSET_FIELD_ID | ASSET_ASSOCIATED_ID 

10  46    15 
12  46    37 
10  21    8 

查詢我使用的是

.....

有我的希望?真的很感謝所有幫助.....

+2

如果沒有唯一的密鑰,我認爲你不能在一個聲明中做到這一點。您需要嘗試更新,檢查是否更新了任何行,然後在必要時插入。 – Barmar

+0

你可以創建一個PK或UNIQUE索引嗎? – peterm

+0

不幸的是我不能改變桌子... –

回答

0

http://dev.mysql.com/doc/refman/5.6/en/replace.html

REPLACE作品酷似INSERT,不同之處在於,如果一個老行的 表具有相同的值作爲新行的PRIMARY KEY或獨特的 索引,舊行被刪除,然後插入新行。

沒有主鍵或唯一索引,沒有REPLACE,句號。

沒有主鍵的表(幾乎總是)是一個巨大的錯誤。與DBA(或具有足夠特權的人員)取得聯繫,讓他/她知道桌子上沒有主鍵。他/她將添加主鍵,而不需要您提出要求。