在mysql查询的每个值上加10

时间:2018-10-30 21:50:28

标签: sql mysqli

我想创建一个将所有值加10的查询,例如取得下表

name   values
A      10
B      20
C      30

$qry = mysqli_query($con,"SELECT * FROM table")

我可以通过php来做到这一点,但这可能会创建很多额外的sql调用

while($row = mysqli_fetch_assoc($qry) {
   $new_value = $row['values']+10;
   $name = $row['name'];
   $qry2 = mysqli_query($con,"UPDATE table SET values=$new_value WHERE name='$name'");
 }

但这可能是很多sql查询。我们怎样才能在一个查询中更新表中的所有值?

1 个答案:

答案 0 :(得分:1)

您只需使用一个查询即可更新值:

UPDATE table SET values = values + 10;

并用PHP包装:

mysqli_query($con,"UPDATE table SET values = values + 10");

这将更新表中的所有行。如果要限制查询,只需为应该包含在子集中的字段添加where子句:

mysqli_query($con,"UPDATE table SET values = values + 10 WHERE name='$name'");

但是,在此解决方案以及您的方法中,它对SQL注入是开放的。您应该使用准备好的语句来避免这种不良行为。