在单个查询中执行SQL更新和选择

4

在SQL(MySQL)中,是否有一种方法可以在单个查询中增加值并返回该值。我正在尝试避免执行以下两个查询:

查询1

UPDATE my_table SET my_col = (my_col + 1) WHERE something = something_else;

查询2

SELECT my_col FROM my_table WHERE something = something_else;

谢谢。

为什么你不想做两个查询? - Taryn
为什么你想要这样做?你可以从 PHP 端进行计算。 - amd
尝试挤取出所有的性能。 - Justin
你需要使用存储过程,参考这个答案:https://dev59.com/RWs05IYBdhLWcg3wGuOd#7446154。 - blackmoon
可能是MySQL更新和选择一次完成的重复。 - Marco Roy
3个回答

2
据我所知,MySQL目前还没有这样的功能,但可以参考这个问题,其中提供了一种可能的解决方法,至少让你能够在同一个数据事务中进行选择和更新操作。请注意保留HTML标签。

0

0

无法同时进行选择和更新。 如果要避免选择,可以声明一个变量并将值放在那里,但这会将最后更新的行值放入变量中。

declare @value int

UPDATE my_table SET my_col = (my_col + 1), @value = (my_col + 1) WHERE something = something_else;

但是它们又是如何返回@value的呢?仍然需要执行选择操作。 - Taryn
@bluefeet,就像我所说的,这只是避免再次从表中选择数据。他仍需对变量进行选择。 - aF.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接