我在我的应用程序中有这个查询:
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)”附近使用正确的语法。
有什么问题?
答案 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;"