MySQL如果Else语句错误

时间:2014-03-30 20:45:24

标签: mysql if-statement

对于我的生活,我无法弄清楚为什么这个MySQL代码不起作用。

目的是检查凭据,如果它们存在,则返回ID,如果他们没有,则插入并返回ID;

SET @Found = 0;

SELECT Id INTO @Found FROM Users WHERE Users.Username = "testAccount" AND Users.Email = "test@email.com";

IF @Found > 0 THEN
    SELECT @Found;
ELSE
    INSERT INTO Users VALUES (DEFAULT, "testAccount", "test@email.com");
    SELECT LAST_INSERT_ID();
END IF;

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

MySQL if语句仅适用于存储过程 - 存储过程,函数和触发器。

这就是documentation的第一行意味着:

  

存储程序的IF语句实现了一个基本的条件构造。

因此,您的语句在语法上无效。

此外,您的select

中存在语法错误
SELECT Id INFO @Found
FROM Users
WHERE Users.Username = "testAccount" AND Users.Email = "test@email.com";

选择了什么?你有逗号吗?或者你的意思是:

SELECT @Found := id
. . .