表结构:

/* 方案一:
foreach($arr as $k=>$v){
$sql=”update obj_config2 set content='”.$v.”‘ where title2='”.$k.”‘”;
mysqli_query($conn,$sql);
}
*/
/*
上面即是循环一条一条的更新记录。一条记录update一次,这样性能很差,也很容易造成阻塞。
那么能不能一条sql语句实现批量更新呢?mysql并没有提供直接的方法来实现批量更新,但是可以用点小技巧来实现。
UPDATE categories
SET 字段1 = CASE 字段2
WHEN 1 THEN 3
WHEN 2 THEN 4
WHEN 3 THEN 5
END
WHERE 字段2 IN (1,2,3)
这句sql的意思是,更新 字段1 字段,如果‘字段2‘=1 则‘字段1’ 的值为3,如果‘字段2‘=2 则‘字段1’ 的值为4,如果‘字段2‘=3 则‘字段1’ 的值为5。
*/
//方案二:推荐使用,这个效率更高,因为是拼装成一个完成的sql更新的。
$sql=”update obj_config2 set content = CASE title2 “;
foreach($arr as $k=>$v){
$sql.=”WHEN ‘”.$k.”‘ THEN ‘”.$v.”‘ “;
}
$sql.=”END”;