MySQL 数据库更新数据后如何获取更新的行?
在 MySQL 数据库中,无法使用 'RETURNING' 子句来在 'UPDATE' 语句之后返回更新的数据行,这是其他一些数据库中常见的功能。但我们可以通过以下两种方法来实现类似的功能:
-
使用 'SELECT' 语句在 'UPDATE' 之后检索更新的数据行: 首先执行 'UPDATE' 语句来更新数据行,然后使用 'SELECT' 语句来检索更新的数据行。可以使用 'WHERE' 子句来限制返回的数据行。 示例:
UPDATE tableName SET column1 = value1, column2 = value2 WHERE condition; SELECT * FROM tableName WHERE condition; -
使用 'LAST_INSERT_ID()' 函数来获取更新的数据行的 ID: 在执行 'UPDATE' 语句之前,可以使用 'LAST_INSERT_ID()' 函数获取当前的自增 ID 值。然后,在 'UPDATE' 语句中使用该自增 ID 值来更新数据行,并使用 'SELECT' 语句来检索更新的数据行。 示例:
SET @id := (SELECT id FROM tableName WHERE condition); UPDATE tableName SET column1 = value1, column2 = value2 WHERE id = @id; SELECT * FROM tableName WHERE id = @id;
需要注意的是,以上两种方法都需要在 'UPDATE' 语句之后执行额外的查询语句来获取更新的数据行,可能会有性能上的开销。如果需要在 'UPDATE' 语句之后立即获取更新的数据行,考虑使用其他支持 'RETURNING' 子句的数据库。
原文地址: https://www.cveoy.top/t/topic/lSoY 著作权归作者所有。请勿转载和采集!