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

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

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



江户川乱折腾
浏览 1986回答 3
3回答

梵蒂冈之花

我找到了这个问题的答案:)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的字符串。

茅侃侃

嗯,我感到惊讶的是,在这些答案中,我没有看到最简单的解决办法。假设,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的条件更新,如果数据将在该行中更改的话。
打开App,查看更多内容
随时随地看视频慕课网APP