2013-02-26 65 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

相关问题