📅  最后修改于: 2023-12-03 15:24:53.789000             🧑  作者: Mango
在 MySQL 中,可以通过 LAST_INSERT_ID()
函数获取最后插入的自增 ID。但是,如果是更新操作,该函数将返回 0,而我们还需要获取更新后的 ID。
有两种方法可以获取 MySQL 中最后更新行的 ID:
SELECT LAST_INSERT_ID()
查询语句在执行更新操作之前,先执行一条查询语句,将需要更新的行的 ID 查询出来。然后执行更新操作,最后再使用 LAST_INSERT_ID()
函数获取最后更新的自增 ID。
示例代码:
-- 查询需要更新的行的 ID
SELECT id FROM table_name WHERE ...;
-- 执行更新操作
UPDATE table_name SET ... WHERE id = ?;
-- 获取最后更新的自增 ID
SELECT LAST_INSERT_ID();
ROW_COUNT()
函数获取影响行数ROW_COUNT()
函数可以返回最近一次执行的 SQL 语句影响的行数。当执行更新操作时,该函数返回的值就是更新的行数。通过执行 SELECT ROW_COUNT()
查询语句,就可以获取最后更新的 ID。
示例代码:
-- 执行更新操作
UPDATE table_name SET ... WHERE id = ?;
-- 获取最后更新的 ID
SELECT id + ROW_COUNT() - 1 AS last_updated_id FROM table_name WHERE id = ?;
综上所述,两种方法各有优缺点,根据具体的业务需求选择合适的方法即可。