编辑数据库中的最新行?

时间:2010-01-05 22:25:20

标签: mysql

如何编辑数据库中的最新行。我只知道它是最后一个。我不知道它的身份。

5 个答案:

答案 0 :(得分:6)

我不知道你使用的是哪种语言,你可以使用PHP的mySQL函数

mysql_insert_id()

我知道的每个其他mySQL客户端库都有类似的功能。

此外,还有native mySQL function

  

LAST_INSERT_ID()(不带参数)   自动返回第一个   生成的值为   AUTO_INCREMENT列最多   最近执行INSERT语句   影响这样一个专栏。例如,   插入生成的行后   一个AUTO_INCREMENT值,你可以得到   像这样的价值:

     

的MySQL> SELECT LAST_INSERT_ID();            - > 195

当然,这些功能需要具有AUTO_INCREMENT的主键才能工作。

答案 1 :(得分:2)

对于具有auto_increment id字段的表:

UPDATE tbl SET col1 = 'val1' WHERE id = MAX(id);

答案 2 :(得分:2)

如果它是已插入脚本中的行(您想要更新它的相同脚本)并且您的表上有一个auto_increment列,则可以获取该auto_increment值,使用诸如PHP之类的函数:

对于您的应用程序,可能使用的语言可能相同。


如果您尝试从另一个脚本执行更新而不是插入的脚本,并且仍然有auto_increment列,那么最好的方法可能是更新该列具有最大值的行:

update your_table
set your_column = ...
where id = max(id)

或者,分两步(不确定它是否可以合作)

select max(id) as id from your_table

update your_table set your_column = ... where id = [what you got with thr first query]

答案 3 :(得分:2)

您也可以使用UPDATE table SET ... WHERE id=LAST_INSERT_ID()(假设最后一个插入位于您要查询的表格上)。

答案 4 :(得分:1)

我不会使用两个步骤来查找最后一个插入ID,因为可以同时添加新记录。

根据您的版本,您应该可以拨打$ handle-> last_id();或$ handle-> {mysql_insertid};

克里斯