2013-02-26 62 views
3

我用這個命令來插入值,我的SQL Server,如果ID已經存在更新的谷Mysql的存在是否還有更新插入

string commandLine = "IF NOT EXISTS(SELECT clientid FROM Rating WHERE clientid = " + clientId + " AND userid = " + userid + ") " + 
      "INSERT INTO Rating VALUES(@clientId,@userid,@rating) " + 
      "ELSE " + 
      "UPDATE Rating SET [email protected] WHERE clientid = " + clientId + " AND userid = " + userid + ";"; 

,我現在搬到MySQL和該命令將無法正常工作。在MySQL中有什麼相同的東西?

+0

什麼不起作用?它會給你一個錯誤?此外,你的代碼看起來有點困惑。你似乎在將值連接到sql(壞!!!)和使用參數(好!!!)之間切換。如果你理順這一點,它可能會讓事情變得更容易一些。 – cadrell0 2013-02-26 22:42:57

回答

7

INSERT ... ON DUPLICATE KEY UPDATE在MySQL中提供了等效的語法。

+0

如果我沒有promary key? – MTA 2013-02-26 23:12:37

+0

然後添加一個。你應該有一個。嘗試瞭解MySQL中的索引,因爲如果正確使用它們會產生很大的差異。這是一個很好的[放置](http://dev.mysql.com/doc/refman/5.0/en/mysql-indexes.html)開始 – marekful 2013-02-26 23:16:11

相關問題