繁体   English   中英

MySQL选择最后插入的两个ID

[英]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。

您需要执行以下步骤:

  1. 获取最大ID
  2. 得到的最大ID小于

这将是:

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM