15

特定の挿入されたテーブルから最後の挿入IDを取得する必要がありますか?私がこのコードを持っているとしましょう:

INSERT INTO blahblah (test1, test 2) VALUES ('test1', 'test2');
INSERT INTO blahblah2 (test1, test 2) VALUES ('test1', 'test2');
INSERT INTO blahblah3 (test1, test 2, lastid) VALUES ('test1', 'test2', last id of blahblah);

テーブルblahblah3のテーブルblahblahの挿入IDを取得するにはどうすればよいですか?LAST_INSERT_ID()は、最後の挿入IDのみを提供します

よろしく、サイモン:)

4

6 に答える 6

15

LAST_INSERT_ID()関数を使用できます。これを試して:

INSERT INTO blahblah (test1, test2) VALUES ('test1', 'test2');

SELECT LAST_INSERT_ID() INTO @blahblah;

INSERT INTO blahblah2 (test1, test2) VALUES ('test1', 'test2');

INSERT INTO blahblah3 (test1, test2, lastid) VALUES ('test1', 'test2', @blahblah);
于 2013-01-10T10:14:32.870 に答える
14

これはあなたが探しているものですか?

SELECT id FROM blahblah ORDER BY id DESC LIMIT 1
于 2013-01-10T10:13:35.873 に答える
9

単一のステートメントでそれを実行したい場合は、以下を使用します。

INSERT INTO blahblah3 (test1, test2, lastid)
VALUES ('test1', 'test2', (select MAX(id) FROM blahblah));

このように、事前に変数を保存する必要がないため、その瞬間に最新のIDを取得できます。

于 2013-01-10T10:23:09.743 に答える
2

関数を使用mysql_insert_id();すると、すばやく回答を得ることができます。

ただし、トラフィックの多いサイトを使用している場合は、正確な結果が得られる可能性があります。

于 2013-01-10T10:15:55.573 に答える
1

LAST_INSERT_ID()関数を使用できます。

INSERT INTO blahblah (test1, test 2) VALUES ('test1', 'test2');
    //this query will return id. Save it in one variable

 select LAST_INSERT_ID()

つまり、最後の挿入IDを1つの変数に保存してから、blahblah3で使用します。

于 2013-01-10T10:14:15.703 に答える
0

codeigniterAsのクエリで最後のIDを見つけることもできます

$this->db->order_by('column name',"desc");
   $this->db->limit(1);
 $id=  $this->db->get('table name');
于 2016-02-07T16:34:18.970 に答える