我有一個相對較小的數據庫表,並且有六列。如果存在唯一ID,則更新MySQL中的多個列
ID | Rank | PrevRank | Player | Country | Points |
ID顯然是唯一的關鍵。我希望只有在UNIQUE鍵不相同的情況下才能更新記錄中的所有列。
INSERT INTO rankings (id,rank,prevrank,player,country,points)
VALUES ($id, $rank, $prevrank, $player, $country, $points)
ON DUPLICATE KEY UPDATE ..... ;
我不確定橢圓之後會出現什麼。我已經看到下面的例子,但只涉及更新一列。
INSERT INTO funds (`fund_id`, `date`, `price`) VALUES (23, DATE('2013-02-12'), 22.5) ON DUPLICATE KEY UPDATE `price` = `price`;
我希望你可以做一個逗號分隔的列表,但我不想毀了我的數據庫中查不到! ON DUPLICATE KEY UPDATE
後
但是...唯一鍵永遠不會是我想的一樣嗎?你不在自己的ID列上做自動增量嗎? – Jeppesen
做一個數據庫備份,將其恢復到不同的數據庫並進行瀏覽。但你是corect,你可以用逗號分隔你的指令列表。 –
如果我錯了,請糾正我,但如果記錄已經與唯一密鑰匹配,則'ON DUPLICATE KEY'具有_updating_記錄的行爲,而不是其他方式。如果記錄不重複,則不會發生更新。 –