我想通过在最后一个当前数字中添加50
来更新 MYSQL 中的列行。表示名为 sum
的列被200
,查询后,它将更新为 250
。我可以通过使用两个查询来做到这一点,如下所示:
$add1 = 50;
$sql = "SELECT sum FROM table_name WHERE id = '$id' ";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
$row = mysqli_fetch_assoc($result);
$add2 = $row['sum'] + $add1 ;
}
$sql1 = "UPDATE tabel_name SET sum = '$add2' WHERE id = '$id' ";
$result1 = $conn->query($sql1);
但是,有没有更好的方法可以用更少的代码或一次性完成此操作?
谢谢
可以直接
在UPDATE
查询中计算值。
$add1 = 50;
$sql1 = "UPDATE tabel_name SET sum = sum + $add1 WHERE id = '$id';";
如果您的列sum
的类型不是数字,而是包含给定数字的字符串,则可以使用 MySQL CAST
函数将其转换为数字,计算它并再次将其转换回字符串:
$sql1 = "UPDATE tabel_name SET sum = CAST((CAST(sum as INT(11)) + $add1) as VARCHAR(11)) WHERE id = '$id';";
你为什么不试试 By
$sql1 = "UPDATE tabel_name SET sum = sum + 'YOUR VALUE' WHERE id = '$id'
您可以使用
UPDATE
执行此操作,只需更改查询,例如:
$sql = "UPDATE table_name SET sum=sum+value_you_want WHERE id = '$id' ";
请使用此 sql 查询:
$sql1 = "UPDATE tabel_name SET sum = sum + 50 WHERE id = '$id' ";