特定の挿入されたテーブルから最後の挿入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のみを提供します
よろしく、サイモン:)
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);
これはあなたが探しているものですか?
SELECT id FROM blahblah ORDER BY id DESC LIMIT 1
単一のステートメントでそれを実行したい場合は、以下を使用します。
INSERT INTO blahblah3 (test1, test2, lastid)
VALUES ('test1', 'test2', (select MAX(id) FROM blahblah));
この方法では、事前に変数を保存する必要がなく、その瞬間に最新のIDを取得できます。
mysql_insert_id();
関数を使用して、簡単な答えを得ることができます。
ただし、トラフィックの多いサイトを使用している場合は、正確な結果が得られない可能性があります。
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で使用します。
あなたはcodeigniter Asでクエリによって最後のIDを見つけることもできます
$this->db->order_by('column name',"desc");
$this->db->limit(1);
$id= $this->db->get('table name');