中频的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语法错误..插入到

我没有方便的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;"