我使用REPLACE INTO
以下MySQL的聲明:如何將此REPLACE INTO語句轉換爲MySQL中等價的UPDATE語句?
INSERT INTO `tableX`.latest_status (tableX_id, name, nick)
(
SELECT records.id,
records.name,
records.nick
FROM `tableX`.records records
WHERE (`records`.`time` = 0)
)
ON DUPLICATE KEY UPDATE name=tableX.name, nick=tableX.nick
由於創建了一些bug,我意識到REPLACE INTO
不適合我的應用程序。我想要的是更新現有的行。如果該行不存在,則不執行任何操作。我猜UPDATE應該是正確的使用條款。我在這一點上是否正確?
我試圖使用UPDATE
將上面的MySQL語句轉換爲等價的語句。這是代碼;
UPDATE `tableX`.latest_status
SET tableX_id, name, nick =
(
SELECT records.id,
records.name,
records.nick
FROM `tableX`.records records
WHERE (`records`.`time` = 0)
)
不幸的是,在SET tableX_id, name, nick
上有一些語法錯誤。等效的UPDATE語句應該如何?
雖然你的答案看起來很囉嗦,效率低下,但對於像我這樣的新手來說,這至少更容易理解。我試了一下,事情奏效。所以,我選擇它作爲正確的答案。謝謝。 – user781486 2014-11-08 08:57:45
謝謝我,我也是一個新手,所以我知道有多難找到一個簡單的答案 – 2014-11-08 09:53:08