IF ... INSERT INTO的MySQL语法错误

时间:2013-10-25 18:36:17

标签: c# mysql asp.net-mvc-4

我在我的应用程序中有这个查询:

string sql = @"UPDATE AccountGroup
            SET IdGroup = @idGroup
            WHERE IdAccount = @idAccount;

            IF (ROW_COUNT() = 0) THEN
                INSERT INTO AccountGroup (IdAccount, IdGroup)
                VALUES (@idAccount, @idGroup);
            END IF;"

这给了我这个错误信息:

  

您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以便在第1行“IF(ROW_COUNT()= 0)THEN INSERT INTO AccountGroup(IdAccount,IdGroup)”附近使用正确的语法。

有什么问题?

1 个答案:

答案 0 :(得分:1)

我没有MySQL服务器来测试它。也就是说,当您想使用IF()时,是否有可能使用IF

来自IF()的{​​{3}}

  

IF(expr1,expr2,expr3)

     

如果expr1为TRUE(expr1<> 0且expr1<> NULL),则IF()返回expr2;否则返回expr3。 IF()返回一个数字或字符串值,具体取决于使用它的上下文。

来自IF的{​​{3}}

IF search_condition THEN statement_list
   [ELSEIF search_condition THEN statement_list] ...
   [ELSE statement_list]
END IF

这会让我觉得你想把代码写成像

这样的代码
string sql = @"UPDATE AccountGroup
            SET IdGroup = @idGroup
            WHERE IdAccount = @idAccount;

            IF ROW_COUNT() = 0 THEN
                INSERT INTO AccountGroup (IdAccount, IdGroup)
                VALUES (@idAccount, @idGroup);
            END IF;"