中频的MySQL语法错误..插入到
本文关键字:错误 插入 语法 MySQL | 更新日期: 2023-09-27 18:36:58
我的应用程序中有这个查询:
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) 然后插入到 AccountGroup (IdAccount, IdGroup)"附近使用的正确语法。
问题出在哪里?
我没有方便的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;"