我想知道是否有办法改变这个陈述
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
?
答案 0 :(得分:0)
最后,我别无选择,只能使用评论中的建议将代码拆分为两行。
INSERT INTO table (id,....) VALUES (1234,........) ON DUPLICATE KEY id = LAST_INSERT_ID(id);
SELECT LAST_INSERT_ID into @myid