我必须从特定的插入表中获取最后一个插入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
问候,西蒙:)
答案 0 :(得分: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);
答案 1 :(得分:13)
这是你在找什么?
SELECT id FROM blahblah ORDER BY id DESC LIMIT 1
答案 2 :(得分:8)
如果您想在单个语句中使用:
INSERT INTO blahblah3 (test1, test2, lastid)
VALUES ('test1', 'test2', (select MAX(id) FROM blahblah));
这样您就不需要事先保存任何变量,这样可以确保您在该时刻获得最新的ID。
答案 3 :(得分:2)
您可以使用mysql_insert_id();
功能快速回答。
但是如果你使用的是繁忙的交通网站,那么就有机会获得准确的结果。
答案 4 :(得分: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保存在一个变量中,然后在blahblah3
中使用它答案 5 :(得分:0)
您还可以通过codeigniter中的查询找到最后一个ID
$this->db->order_by('column name',"desc");
$this->db->limit(1);
$id= $this->db->get('table name');