[英]MySQL select the last two inserted IDs
如何选择最后插入的两个ID?
在这里,我解释了如何使用它们。 这是我的查询:
INSERT INTO Table1 (FIELD1, FIELD2, FK_TABLE2, FIELD6)
(SELECT FIELD1, FIELD2
,(SELECT MAX(PK_Table2)
FROM Table2
)
,(FIELD4 + FIELD5) FROM Table1 WHERE FIELD3 = (
(SELECT MAX(PK_Table2)
FROM Table2) - 1
))
对于table2的最后一条记录,这几乎应该复制链接到table2的最后一条记录的所有记录。
现在可以使用此功能,但这仅是因为我尚未删除记录。
如果我从table2中删除最后一条记录并插入另一条记录,则生成器将生成一个不是last + 1的新PK。
例如:最后两个ID是:18-19。 我删除19,然后插入另一个。 现在最后两个ID是18-20。
因此, Max(PK_Table2)
将为20, Max(PK_Table2)-1
将为19,但我需要将其设置为18。
您需要执行以下步骤:
这将是:
WHERE FIELD3 =
(
SELECT MAX(PK_Table2) FROM Table2
WHERE PK_Table2 < (SELECT MAX(PK_Table2) FROM Table2)
)
另一个方法:获取最后两个,然后获取倒数第二个。
WHERE FIELD3 =
(
SELECT PK_Table2
FROM (SELECT PK_Table2 FROM Table2 ORDER BY PK_Table2 DESC LIMIT 2) x
ORDER BY PK_Table2 LIMIT 1
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.