web-dev-qa-db-ja.com

MySQLは特定のテーブルの最後のIDを取得します

特定の挿入されたテーブルから最後の挿入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のみを提供します

よろしく、サイモン:)

15
simon

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);
15
Saharsh Shah

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

SELECT id FROM blahblah ORDER BY id DESC LIMIT 1
13
x4rf41

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

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

この方法では、事前に変数を保存する必要がなく、その瞬間に最新のIDを取得できます。

9
flu

mysql_insert_id();関数を使用して、簡単な答えを得ることができます。

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

2
Vishnu Renku

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で使用します。

1
Bhavik Shah

あなたはcodeigniter Asでクエリによって最後のIDを見つけることもできます

$this->db->order_by('column name',"desc");
   $this->db->limit(1);
 $id=  $this->db->get('table name');
0
Nazir Ali