php - 更新后获取以前的值 - MySql

标签 php mysql

我有一个包含id和name的表

---    -----  
id     name
---    -----
1      pete

我的场景是这样的

$sql = "SELECT name FROM table_name WHERE id=1";

previous name - ''
current name - pete

现在更新

$sql = "UPDATE table_name SET name='dave' WHERE id=1";

previous name - pete
updated name - dave

$sql = "UPDATE table_name SET name='Alan' WHERE id=1";

previous name - dave
updated name - Alan

因此,在更新此表后,我想获取其中存在的先前记录。在我的例子中,我应该得到以前的名字和更新后的名字。如何实现这一点

最佳答案

如果您正在更新一个行并且您想要以前的名称,您可以使用变量:

set @prevname = '';

update table_name
    set name = if(@prevname := name, 'Alan', 'Alan')
    where id = 1;

select @prevname;

但是,我怀疑你真的想要一个缓慢变化的维度,update 不是正确的操作。

关于php - 更新后获取以前的值 - MySql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55870095/

相关文章:

PHP num_rows 工作但显示错误

php - 如何在MySQL中显示两个时间字段之间的分钟数?

php - tinyMCE 媒体嵌入,带有 PHP + MySql 中的媒体插件

mysql - 授予命令语法错误

mysql - IFNULL 函数在 MySQL 查询中不起作用

mysql - 使用 Group by Mysql 显示所需的结果

mysql - 在mysql中搜索子字符串

php - 这个简单的反垃圾邮件概念有效吗? (需要优化吗?)

php - 将 php 变量添加到 WordPress mysql 查询中

mysql - 将两个 MySQL 查询合并并共享结果?