知道刚增加的值

时间:2011-01-25 00:55:30

标签: mysql sql-update

我们每个人都知道如何增加MySQL中的列:

更新表格设置col = col + 1,其中id = 15;

但是......无论如何都知道没有进行SELECT查询的新值吗?

谢谢

2 个答案:

答案 0 :(得分:1)

试着理解你的问题。 取自Posted by Justin Swanhart on July 29 2004 5:32pm@Mysql UPDATE refman。 也许这就是你想要实现的目标

update table set 
col = col + 1 
where id = 15
and @value := col
  

@value := col将永远   评估为真,并将存储   更新前的col值   @value变量。

然后你可以做

select @value;

答案 1 :(得分:0)

不是我知道的。

如果您考虑一下,由于UPDATE可能会影响多行,因此考虑数据库在UPDATE的上下文中返回所有数据并不是一件容易的事,也不一定具有吸引力。

MySQL文档还解决了“我可以在同一子查询中进行UPDATE和SELECT”问题:

  

目前,您无法更新表格   并从a中的同一个表中选择   子查询。

http://dev.mysql.com/doc/refman/5.5/en/update.html

可能为您工作的另一种选择是依赖SELECT..FOR UPDATE方法:

http://dev.mysql.com/doc/refman/5.5/en/innodb-locking-reads.html