将两个语句组合到MySql中的一个表达式中

时间:2015-03-13 22:50:20

标签: mysql

我想使用SET x = IFNULL(expr1, expr2)语句,我尝试在expr1中选择一个id,如果它不存在,我想在expr2中插入一个新行并返回最后插入的id {{1 }}

我怎样才能获得像SELECT LAST_INSERT_ID()这样的东西? (expr2似乎是一个错误的语法)

1 个答案:

答案 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;

当然所有这些代码都是存储过程的一部分......