如何编辑数据库中的最新行。我只知道它是最后一个。我不知道它的身份。
答案 0 :(得分:6)
我不知道你使用的是哪种语言,你可以使用PHP的mySQL函数
我知道的每个其他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};
克里斯