为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

江户川乱折腾 2019-06-28 17:10:59
如何获取MySQL中最后更新的行的ID?如何使用PHP获取MySQL中最后更新行的ID?
查看完整描述

3 回答

?
梵蒂冈之花

TA贡献1900条经验 获得超5个赞

我找到了这个问题的答案:)

SET @update_id := 0;UPDATE some_table SET column_name = 'value', id = (SELECT @update_id := id)WHERE some_other_column = 'blah' LIMIT 1; SELECT @update_id;

编辑由Aefxx

可以进一步扩展此技术以检索受UPDATE语句影响的每一行的ID:

SET @uids := null;UPDATE footable
   SET foo = 'bar'
 WHERE fooid > 5
   AND ( SELECT @uids := CONCAT_WS(',', fooid, @uids) );SELECT @uids;

这将返回带有由逗号连接的所有ID的字符串。


查看完整回答
反对 回复 2019-06-28
?
茅侃侃

TA贡献1842条经验 获得超21个赞

嗯,我感到惊讶的是,在这些答案中,我没有看到最简单的解决办法。

假设,item_id中的整数标识列。items表并使用以下语句更新行:

UPDATE items
SET qwe = 'qwe'WHERE asd = 'asd';

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

UPDATE items
SET qwe = 'qwe',
    item_id=LAST_INSERT_ID(item_id)WHERE asd = 'asd';SELECT LAST_INSERT_ID();

如果只需要更新真正已更改的行,则需要通过最后一个_INSERT_ID检查来添加Item_id的条件更新,如果数据将在该行中更改的话。


查看完整回答
反对 回复 2019-06-28
  • 3 回答
  • 0 关注
  • 1985 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信