php – 我可以更新INT值1并返回新值吗?

前端之家收集整理的这篇文章主要介绍了php – 我可以更新INT值1并返回新值吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

MySQL PHP中是否可以增加INT值并在一个查询中返回新值?

$sql = MysqL_query("UPDATE table SET number=number+1 WHERE id='uniqid'");

$updated_number = ???

或者我需要发布另一个查询

SELECT number FROM table WHERE id='uniqid'
最佳答案
简单的答案 – 不,这是不可能的.

更长的答案,是的,如果您使用增加指定ID值的存储过程,则检索新值并返回它.

我刚刚在MysqL 5.1.59下测试了这个:

CREATE PROCEDURE increment (IN uniqid VARCHAR(255))
BEGIN
   UPDATE `table` SET number = number + 1 WHERE id = uniqid;
   SELECT number FROM `table` WHERE id = uniqid;
END

用法

CALL increment(uniqid)

如果可以同时进行多次访问,您可能希望首先锁定表以确保操作的原子性–MysqL显然不允许存储过程自己锁定表.

原文链接:https://www.f2er.com/mysql/433620.html

猜你在找的MySQL相关文章