2017-12-15 15 views
0

挿入された最後の2つのIDはどのようにして選択できますか?MySQLは最後に挿入された2つのIDを選択します

ここでは、これらをどのように使用できるか説明します。これは私のクエリです:これはほとんど表2の最後のレコードのために、最後が、表2の一つのレコードにリンクされているすべてのレコードを

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から最後のレコードを削除して別のレコードを挿入すると、私のジェネレータは最後の+ 1ではない新しいPKを生成します。

例:最後の2つのIDは、18-19です。私は19を削除し、別のものを挿入します。最後の2つのIDは18-20です。
だからMax(PK_Table2)は20とMax(PK_Table2)-1なり19になりますが、私はそれはあなたがステップに必要な18

答えて

2

する必要があります。

  1. 最大ID
  2. が少ないこと
  3. そして、最大のIDをゲット

これは次のようになります。

WHERE FIELD3 = 
(
    SELECT MAX(PK_Table2) FROM Table2 
    WHERE PK_Table2 < (SELECT MAX(PK_Table2) FROM Table2) 
) 

別の承認:最後の2つを取得し、最後の2つを取得します。

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 
) 
+0

ニースとシンプル!なぜ私はそれについて考えていないか分からない。ありがとう –