我知道有一种方法可以做到这一点。基本上我有变量$amount
,并希望从表股票的列数量。PHP MySQL更新减号变量没有单独的SELECT查询
问题是我通常运行一个select查询找出值然后扣除变量并运行另一个更新查询。
运行单个更新的语法将会减去该值。
所有帮助表示赞赏。
我知道有一种方法可以做到这一点。基本上我有变量$amount
,并希望从表股票的列数量。PHP MySQL更新减号变量没有单独的SELECT查询
问题是我通常运行一个select查询找出值然后扣除变量并运行另一个更新查询。
运行单个更新的语法将会减去该值。
所有帮助表示赞赏。
它看起来很简单。在这个例子中括号是可选的。请务必在您的WHERE
条款中使用适当的条件!
$qry = "UPDATE table SET column = (column - $amount) WHERE somecondition;";
变量$amount
被认为是正确转义已,根据您所使用,或更好,但MySQL的API,参数,以事先准备好的例子,如PDO:
$qry = "UPDATE table SET column = (column - :amount) WHERE somecondition;";
$stmt = $db->prepare($qry);
$stmt->execute(array(':amount' => $amount));
尝试是这样的:
UPDATE table_name SET amount = amount - $amount WHERE primary_key = value LIMIT 1
如果你想确保amount
不低于零:
UPDATE table_name SET amount = amount - $amount WHERE primary_key = value AND amount >= $amount LIMIT 1
要在下面吗?
UPDATE table_name
SET amount = amount -$amount
WHERE primary = id
出于好奇你是从一些其他的SQL选择获取$变量?像也许是一个零件清单或什么?在存储过程或化合物选择中运行整个事件可能会快得多。
如果该变量是静态的或本地生成的忽略。
静态,但感谢您的建议 – Somk
啊,在那导致+1迈克尔 – meteorainer