SQL(MySQL)中是否有一种方法可以递增值,还可以在单个查询中返回值。我试图卵形做两个查询,如下所示:
QUERY 1
UPDATE my_table SET my_col = (my_col + 1) WHERE something = something_else;
QUERY 2
SELECT my_col FROM my_table WHERE something = something_else;
感谢。
答案 0 :(得分:2)
据我所知,在MySQL中仍然没有这种可能性,但请查看this question以获得可能的解决方法,至少可以让您在事务上使用相同的数据进行选择和更新。
答案 1 :(得分:0)
无法同时进行选择和更新。 如果你想避免选择你可以声明一个变量并将值放在那里,但这会将最后更新的行值放在变量中。
declare @value int
UPDATE my_table SET my_col = (my_col + 1), @value = (my_col + 1) WHERE something = something_else;
答案 2 :(得分:0)
我不知道您使用的是什么脚本语言,但这里是一个在MySQL中创建存储过程的示例,它返回更新的值,以便您可以在一个操作中进行更新和选择: