对于我的生活,我无法弄清楚为什么这个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;
感谢您的帮助。
答案 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
. . .