gpt4 book ai didi

php - 在 Update SQL 中执行 OPERATION(加、减、乘、除)

转载 作者:可可西里 更新时间:2023-11-01 07:50:19 24 4
gpt4 key购买 nike

如何在SQL中对选中的表和行进行加减乘除运算?

下面是示例代码,我手动减去原始数量以创建新数量并更新到所选行:

$idArr = $_POST['checkboxId'];foreach($idArr as $index=>$value){    $id = mysql_real_escape_string($value);    // Get Quantity from this item id    $sql = "SELECT quantity FROM items WHERE item_id = '$id'";    $result = mysql_query($sql);    $quantity = $row['quantity'];    // New quantity after minus by 1    $new_quantity = $row['quantity'] - 1;    // Update new quantity to this item    $sql = "UPDATE items SET quantity = '$new_quantity' WHERE item_id = '$id'";    $result = mysql_query($sql);}

这是更新首选行中数量(整数)变化的实用方法吗?我可以使用单个更新查询来做到这一点吗?

最佳答案

为什么不直接将操作放在 SQL update 查询中?


例如,您可能有这样的查询:

UPDATE items SET quantity = quantity - 1 WHERE item_id = '$id'

或者:

UPDATE items SET quantity = quantity + 1 WHERE item_id = '$id'


巨大优势:这是在单个 SQL 查询中完成的(没有select,然后是update);这意味着如果两个用户同时尝试执行此操作不会有问题:SQL 将处理并发性,并一个接一个地执行查询。

根据您最初的解决方案,您可能会遇到(如果您很不走运——但这种情况会发生):

  • 第一个用户执行选择,得到 5 作为数量
  • 第二个用户执行选择,得到 5 作为数量
  • 第一个用户更新到4
  • 第二个用户也更新到 4...但是,它应该已经更新到 3 了!

关于php - 在 Update SQL 中执行 OPERATION(加、减、乘、除),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5537471/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com