首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何获取MySQL中最后一次更新的行的ID?

如何获取MySQL中最后一次更新的行的ID?
EN

Stack Overflow用户
提问于 2009-09-07 07:34:03
回答 9查看 197.8K关注 0票数 153

如何使用PHP获取MySQL中最后更新的行的ID?

EN

回答 9

Stack Overflow用户

发布于 2012-03-30 04:15:30

嗯,我很惊讶,在这些答案中,我没有看到最简单的解决方案。

假设item_iditems表中的整数标识列,您使用以下语句更新行:

代码语言:javascript
复制
UPDATE items
SET qwe = 'qwe'
WHERE asd = 'asd';

然后,要知道语句后面最新受影响的行,您应该稍微将语句更新为以下内容:

代码语言:javascript
复制
UPDATE items
SET qwe = 'qwe',
    item_id=LAST_INSERT_ID(item_id)
WHERE asd = 'asd';
SELECT LAST_INSERT_ID();

如果只需要更新实际更改的行,则需要通过LAST_INSERT_ID检查行中的数据是否要更改来添加item_id的条件更新。

票数 37
EN

Stack Overflow用户

发布于 2011-01-18 13:55:39

这是与Salman A的答案相同的方法,但这是您实际需要的代码。

首先,编辑您的表,使其在行被修改时自动跟踪。如果只想知道行最初插入的时间,请删除最后一行。

代码语言:javascript
复制
ALTER TABLE mytable
ADD lastmodified TIMESTAMP 
    DEFAULT CURRENT_TIMESTAMP 
    ON UPDATE CURRENT_TIMESTAMP;

然后,要找出最后更新的行,可以使用以下代码。

代码语言:javascript
复制
SELECT id FROM mytable ORDER BY lastmodified DESC LIMIT 1;

这段代码全部取自MySQL vs PostgreSQL: Adding a 'Last Modified Time' Column to a TableMySQL Manual: Sorting Rows。我刚组装好的。

票数 11
EN

Stack Overflow用户

发布于 2014-05-01 20:31:54

查询:

代码语言:javascript
复制
$sqlQuery = "UPDATE 
            update_table 
        SET 
            set_name = 'value' 
        WHERE 
            where_name = 'name'
        LIMIT 1;";

PHP函数:

代码语言:javascript
复制
function updateAndGetId($sqlQuery)
{
    mysql_query(str_replace("SET", "SET id = LAST_INSERT_ID(id),", $sqlQuery));
    return mysql_insert_id();
}

这是我的工作;)

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1388025

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档