1

我想知道是否有办法改变这个说法

INSERT INTO [table] VALUES ([values]);
SET @last_id = LAST_INSERT_ID();

成单行。诸如此类的东西

SELECT 
CASE WHEN ( SELECT COUNT(id) FROM [table] WHERE id=1 ) > 0 
THEN 'false' 
WHEN ( INSERT INTO [table] VALUES ([values]) )
THEN LAST_INSERT_ID()
END INTO @myid;

(可以有效地写在一行中)

是否会尝试该WHEN ( INSERT INTO ...)语句,它会返回一个我们可以检查的值吗?

INSERT即使它在CASE语句中,它也会执行吗?

4

1 回答 1

0

最后,我别无选择,只能使用评论中的建议将代码分成两行。

INSERT INTO table (id,....) VALUES (1234,........) ON DUPLICATE KEY id = LAST_INSERT_ID(id);
SELECT LAST_INSERT_ID into @myid
于 2014-11-21T11:06:32.720 回答