我想使用SET x = IFNULL(expr1, expr2)
语句,我尝试在expr1中选择一个id,如果它不存在,我想在expr2中插入一个新行并返回最后插入的id {{1 }}
我怎样才能获得像SELECT LAST_INSERT_ID()
这样的东西? (expr2似乎是一个错误的语法)
答案 0 :(得分:0)
如果我理解正确,我认为你想要做这样的事情
DECLARE expr1 INT;
DECLARE returnValue INT;
SELECT id
FROM where-your-want
WHERE clause
INTO expr1;
IF expr1 IS NOT NULL THEN
SELECT what-ever-you-want
FROM where-you-want
WHERE clause
SET returnValue = -1;
ELSE
INSERT INTO where-ever-you-want()
VALUES ();
SET returnValue = LAST_INSERT_ID();
END IF;
SELECT returnValue;
当然所有这些代码都是存储过程的一部分......