-2

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

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)' 附近使用正确的语法。

问题是什么?

4

1 回答 1

1

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

文档IF()

IF(expr1,expr2,expr3)

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

并从文档IF

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;"
于 2013-10-25T19:47:08.707 回答