Mysql获取特定表的最后一个id

时间:2013-01-10 10:11:37

标签: php mysql sql insert last-insert-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

问候,西蒙:)

6 个答案:

答案 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');