在MySQL PHP中是否可以增加INT值并在一个查询中返回新值?
$sql = MysqL_query("UPDATE table SET number=number+1 WHERE id='uniqid'");
$updated_number = ???
或者我需要发布另一个查询?
SELECT number FROM table WHERE id='uniqid'
最佳答案
简单的答案 – 不,这是不可能的.
原文链接:https://www.f2er.com/mysql/433620.html更长的答案,是的,如果您使用增加指定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显然不允许存储过程自己锁定表.