我想创建一个将所有值加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查询。我们怎样才能在一个查询中更新表中的所有值?
答案 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注入是开放的。您应该使用准备好的语句来避免这种不良行为。